hle*_*one 15 java maven-2 maven-3
我需要在Maven生成的WAR WEB-INF/lib文件夹中有一个JAR依赖项,x-1.0.final.jar而不是x-1.0.jar它在存储库中的名称.实现这一目标的最佳方法是什么?
在我的POM中,我有:
<dependency>
<groupId>foo</groupId>
<artifactId>x</artifactId>
<version>1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
我希望它出现在WEB-INF/lib文件夹中x-1.0.final.jar.
这是对Maven Central的外部依赖我无法控制.此外,我不想强迫所有人使用它将依赖项重新部署到其本地存储库.
是否有我可以使用的Maven插件或者我应该开始编写自己的插件?
Unc*_*ter 32
您可以使用maven-dependency-plugin在您需要的名称下包含工件.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>foo</groupId>
<artifactId>x</artifactId>
<version>1.0</version>
<type>jar</type>
<outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/lib</outputDirectory>
<destFileName>x-1.0.final.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
Run Code Online (Sandbox Code Playgroud)
默认情况下,maven-dependency-plugin绑定到process-sources适合您的任务的阶段.请记住provided在依赖项中设置工件的范围,以便war插件不会自动包含它.