如何使用maven打包特定版本?

时间:2011-05-31 11:46:00

标签: maven-2 maven

我想致电

mvn clean install -Dsomeproperty=1.2.3-20110526-1836

获取

artifact-1.2.3-20110526-1836.jar

而不是

artifact-1.2.3-SNAPSHOT.jar

如何将该时间戳传递给maven?

3 个答案:

答案 0 :(得分:3)

pom.xml中的以下工件设置似乎正在执行您想要的操作:

<groupId>testgroup</groupId>
<artifactId>testartifact</artifactId>
<version>${someproperty}</version>

现在,如果您执行“mvn clean install -Dsomeproperty = 1.1.timestamp”,则生成的jar文件的名称中也包含时间戳。

我不确定这是否是你要找的。

修改

另一种解决方案,因为pom文件无法更改。

正常执行“mvn clean install”命令。这会生成一个jar文件,如artifact-1.2.3-SNAPSHOT.jar。

再次安装此文件 - 这次使用“mvn install:install-file -Dfile = artifact-1.2.3-SNAPSHOT.jar -DgroupId = testgroup -DartifactId = testartifact -Dversion = 1.2.3-123456-1234 -Dpackaging = jar。这将在本地存储库中安装artifact-1.2.3-123456-1234.jar

答案 1 :(得分:0)

最快的黑客就是运行

     mvn clean install --offline

这样可以防止从远程回购加载您的夜间构建。

您也可以使用settings.xml

答案 2 :(得分:0)

虽然这将按照您的指定执行:

<project ...>
    <properties>
         <someproperty>somproperty-default-value</someproperty>
    </properties>
    <build>
        <finalName>artifact-${someproperty}</finalName>
        ....
    </build>
    ....
</project>

我建议使用这个:How do I add time-stamp information to Maven artifacts?