在这里,我的问题的故事:
我想使用deploy命令上传带有pom.xml的jar,但我希望上传的jar不包含此名称中的版本号。
例如,jogl.all.jar的pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.jogamp.jogl</groupId>
<artifactId>jogl.all</artifactId>
<version>2.0-b526-20111018</version>
<packaging>jar</packaging>
<name>Jogl</name>
</project>
我的部署cmd:
mvn deploy:deploy-file
-Durl=http://maven.iscpif.fr/thirdparty/
-DrepositoryId=maven.iscpif.fr
-DgroupId=org.jogamp.jogl
-DartifactId=jogl.all
-Dversion=2.0-b526-20111018
-Dfile=./jogl.all.jar
-DpomFile=./pom-jogl-all.xml
-Dpackaging=jar
部署的jar等于:jogl.all-2.0-b526-2011108.jar
但是,当我调用此依赖项时,我希望maven尝试下载一个名为的jar:jogl.all.jar
感谢您的建议:)
SR。
答案 0 :(得分:3)
如果要部署到远程存储库,则无法更改工件名称。这会破坏maven的工作方式。
同样请参阅comment中的@ Pascal this related SO discussion。
您可以使用属性outputFileNameMapping
更改依赖jar的名称,同时使用maven程序集插件将它们包含在分发中。如下所示:
<dependencySets>
<dependencySet>
<outputDirectory>/webapps/myapp/WEB-INF/lib</outputDirectory>
<excludes>
<exclude>${project.groupId}:${project.artifactId}</exclude>
</excludes>
<outputFileNameMapping>${artifact.artifactId}.${artifact.extension}</outputFileNameMapping>
</dependencySet>
</dependencySets>