Maven,删除部分版本并替换为内部版本号

时间:2016-04-22 16:05:01

标签: maven bamboo

在我的pom.xml中,版本是1.0-SNAPSHOT。我使用Bamboo将快照部署到nexus:

mvn clean deploy 

问题在于我希望项目版本在nexus中显示为1.0-22(内部版本号,22只是一个示例)而不是1.0-SNAPSHOT。

我知道在竹子里我可以使用:

mvn versions:set -DnewVersion=1.0-${build.buildNumber}
mvn clean deploy
mvn versions:revert

问题是我不想在我的所有竹子版本中硬编码1.0,因为这部分可能会在未来发生变化,如果是的话,我不想用竹子来改变它。另外,我需要将版本保留为pom.xml中的1.0-SNAPSHOT,因为它部署到其他地方而不仅仅是nexus。有没有办法使用命令更改部分版本号?即删除-SNAPSHOT部分并将其替换为内部版本号,然后在其他地方部署时恢复为旧的快照版本。

1 个答案:

答案 0 :(得分:0)

如果您在基于Unix的系统上运行,可以尝试:

BASE_VERSION=$(mvn org.apache.maven.plugins:maven-help-plugin:2.1.1:evaluate -Dexpression=project.version | grep SNAPSHOT | grep -v INFO | sed 's/-SNAPSHOT//g')
mvn versions:set -DnewVersion=$BASE_VERSION-${build.buildNumber}
mvn clean deploy
mvn versions:revert

您可能需要调整BASE_VERSION字符串,因为我不能100%确定它在多个pom项目中的运行方式。