在远程存储库上传之前更改依赖关系jar的名称

时间:2011-10-28 09:58:14

标签: deployment maven-2 build jar

在这里,我的问题的故事:

我想使用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。

1 个答案:

答案 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>