关于pom.xml中的maven:version属性动态

version property dynamic in pom.xml

我有一个Maven pom.xml,我使用Jenkins在Nexus中构建项目并部署可执行jar。
但是我想根据分支名称更改版本名称。

例如:我在pom.xml中

1
2
3
4
5
<groupId>net.test</groupId>
test-parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>iin-parent</name>
<packaging>pom</packaging>

我需要这样设置:(Branch- Master / Test1 / Test2 / ..)

1
2
3
4
5
<groupId>net.test</groupId>
test-parent</artifactId>
<version>BranchName_0.0.1-SNAPSHOT</version>
<name>iin-parent</name>
<packaging>pom</packaging>

这怎么办?

我正在使用MVN构建,如-Drevision = BranchName-SNAPSHOT干净的编译程序包部署。但我想动态获取分支名称。

1
enter code here

如果使用clean compile package deploy,则您正在复制多个部分。仅需要clean deploy。请阅读有关Maven生命周期的文档。

此外,如果您想动态更改版本,可以使用${revision}${sha1}${changelist}的正确属性(从Maven 3.5.0开始)进行操作,例如:

1
2
3
4
5
6
7
<groupId>net.test</groupId>
test-parent</artifactId>
<version>${revision}</version>

<properties>
  <revision>1.0-SNAPSHOT</revision>
</properties>

可以在Maven中这样完成:

1
mvn -Drevision=2.0-SNAPSHOT clean package

,或者如果您愿意为分支机构这样做:

1
mvn -Drevision=2.0-BranchName-SNAPSHOT clean package

您必须知道是否要执行mvn clean deploy,请仔细阅读文档并遵循它们。