Maven 覆盖版本标签
Maven overwrite version tag
在我项目的 POM 文件中,有一些标签
<groupId>foo.bar</groupId>
<artifactId>foobar</artifactId>
<version>X</version>
<description>foo bar foo bar</description>
指定。我正在使用 Jenkins 进行一些构建,我想覆盖 X
值。我该怎么做?
举个例子,我对 MSBuild 比较熟悉,我可以在那里做类似的事情
msbuild.exe project.sln ...some options... /p:AssemblyVersion=X
就是我说的那个 AssemblyVersion。 maven 可以吗?
除此之外,这是一个好的做法吗?目前,我有版本 1.0-SNAPSHOT
。我应该手动更改该值吗?如何执行发布?
要从 Jenkins 自动更新 pom 文件中的版本,请使用 -DnewVersion
参数和 mvn
命令。
示例:
mvn versions:set -DnewVersion=someversion
在构建期间,如果您想将内部版本号更新为您的工件版本,那么您可以像 -DnewVersion=${BUILD_NUMBER}
.
一样传递该环境变量
编辑 1:
归功于此 SO 线程 updating-version-numbers-of-modules-in-a-multi-module-maven-project。解释的很清楚。
在我项目的 POM 文件中,有一些标签
<groupId>foo.bar</groupId>
<artifactId>foobar</artifactId>
<version>X</version>
<description>foo bar foo bar</description>
指定。我正在使用 Jenkins 进行一些构建,我想覆盖 X
值。我该怎么做?
举个例子,我对 MSBuild 比较熟悉,我可以在那里做类似的事情
msbuild.exe project.sln ...some options... /p:AssemblyVersion=X
就是我说的那个 AssemblyVersion。 maven 可以吗?
除此之外,这是一个好的做法吗?目前,我有版本 1.0-SNAPSHOT
。我应该手动更改该值吗?如何执行发布?
要从 Jenkins 自动更新 pom 文件中的版本,请使用 -DnewVersion
参数和 mvn
命令。
示例:
mvn versions:set -DnewVersion=someversion
在构建期间,如果您想将内部版本号更新为您的工件版本,那么您可以像 -DnewVersion=${BUILD_NUMBER}
.
编辑 1:
归功于此 SO 线程 updating-version-numbers-of-modules-in-a-multi-module-maven-project。解释的很清楚。