我正在一个项目中使用Maven 3.6.0,该项目使用https://maven.apache.org/maven-ci-friendly.html中所述的revision
属性设置了项目的版本,并且我想在命令行中自动更新项目的版本。
我尝试使用maven release plugin
命令来查看release:update-versions
(https://maven.apache.org/maven-release/maven-release-plugin/update-versions-mojo.html)的侧面,该命令似乎有效,但它不是更新属性revision
,而是更新version
属性。
当前设置:
<version>${revision}</version>
<properties>
<revision>1.1-SNAPSHOT</revision>
</properties>
运行mvn release:update-versions
时:
<version>1.2-SNAPSHOT</version>
<properties>
<revision>1.1-SNAPSHOT</revision>
</properties>
预期:
<version>${revision}</version>
<properties>
<revision>1.2-SNAPSHOT</revision>
</properties>
答案 0 :(得分:1)
以下是发生这种情况的说明:
执行mvn release:update-versions
时,它将通过首先获取修订版属性的值来增加版本。此命令也不关心更新属性值。
通常,可以在命令行中使用-D标志来更新maven中的属性值,如下所示:
mvn release -Drevision=1.2-SNAPSHOT
以下链接也可能有帮助:
https://maven.apache.org/maven-release/maven-release-plugin/examples/non-interactive-release.html
https://maven.apache.org/maven-release/maven-release-plugin/update-versions-mojo.html
答案 1 :(得分:0)
最后,我通过使用maven versions
插件获得了相同的结果,但是没有使用${revision}
标签。
mvn versions:set -DnextSnapshot=true
Versions插件比Release插件灵活得多,可以管理您项目的版本。