代码之家  ›  专栏  ›  技术社区  ›  Justin

maven:添加任意文件作为servlet上下文资源

  •  1
  • Justin  · 技术社区  · 14 年前

    我尝试使用覆盖图,但它将zip文件扩展为WEB-INF,而不是将未扩展的文件放在那里:

        <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <overlays>
                    <overlay>
                        <groupId>com.mycompany</groupId>
                        <artifactId>skin</artifactId>
    
                        <type>zip</type>
                        <targetPath>WEB-INF</targetPath>
                    </overlay>
                </overlays>
            </configuration>
        </plugin>
    

    type 是一个完全不必要且毫无帮助的配置元素--它没有告诉插件如何扩展工件,正如您所料--它告诉插件如何扩展工件 是的。例如,如果您将类型从zip更改为jar,它会抱怨找不到工件(以最没有帮助的方式)。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Pascal Thivent    14 年前

    我尝试使用覆盖图,但它将zip文件扩展为WEB-INF

    是的,这就是覆盖图的作用,内容被解包以与战争合并。在你的情况下,那不是合适的工具。

    有没有办法阻止它扩展资源——或者以某种方式将文件粘贴在其中

    Maven Dependency Plugin dependency:copy 目标:

    • 获取插件配置部分中定义的工件列表,并将它们复制到指定位置,如果需要,重命名它们或剥离版本。如果本地存储库中不存在远程存储库中的工件,那么这个目标可以解决这些工件。

    把它绑在桌子上 prepare-package 阶段。以下是一些出发点:

    <project>
      [...]
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
              <execution>
                <id>copy-prepare-package</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>copy</goal>
                </goals>
                <configuration>
                  <artifactItems>
                    <artifactItem>
                      <groupId>com.mycompany</groupId><!-- or ${project.groupId} -->
                      <artifactId>skin</artifactId>
                      <version>X.Y.Z</version><!-- or ${project.version} -->
                      <type>zip</type>
                    </artifactItem>
                  </artifactItems>
                  <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF</outputDirectory>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      [...]
    </project>
    

    Copying specific artifacts 更多示例。