是否可以在不操作 POM 文件的情况下更改 Maven 项目的版本?
假设我有一个带有版本的 Maven 项目,1.5.0-SNAPSHOT
但我想将它构建为1.5.46
.
不幸的是,版本 Maven 插件修改了 POM 文件。
是否可以在不操作 POM 文件的情况下更改 Maven 项目的版本?
假设我有一个带有版本的 Maven 项目,1.5.0-SNAPSHOT
但我想将它构建为1.5.46
.
不幸的是,版本 Maven 插件修改了 POM 文件。
从 Maven 3.5.0 开始,这可以使用一个特殊的预定义属性:${revision}
. 使用默认值(例如1.5.0-SNAPSHOT
)定义属性,并在需要时在执行期间将其设置为特定版本(例如1.5.46
)。
例如,在您的 中定义以下内容pom.xml
:
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>foo</artifactId>
<name>Foo Module</name>
<version>${revision}</version>
...
<properties>
<revision>1.5.0-SNAPSHOT</revision>
</properties>
</project>
使用默认值构建它:
mvn clean install
这将产生一个标识为 的工件org.example:foo:1.5.0-SNAPSHOT
。
为了构建特定版本,请设置revision
属性,例如:
mvn clean install -Drevision=1.5.46
这将产生一个标识为 的工件org.example:foo:1.5.46
。
有关更多详细信息,请参阅Maven CI 友好版本页面。
尝试覆盖项目版本
mvn versions:set -DnewVersion=<version>
在您的特定情况下:
mvn versions:set -DnewVersion=1.5.46
你可以
temppom.xml
temppom.xml
mvn -f temppom.xml
.temppom.xml
。Maven 支持交付友好版本,请参阅https://issues.apache.org/jira/browse/MNG-5576。有关更多详细信息,我建议与@khmarbaise 交谈
该插件提供了一个目标来恢复它所做的更改:
mvn versions:revert