4

是否可以在不操作 POM 文件的情况下更改 Maven 项目的版本?

假设我有一个带有版本的 Maven 项目,1.5.0-SNAPSHOT但我想将它构建为1.5.46.

不幸的是,版本 Maven 插件修改了 POM 文件。

4

5 回答 5

2

从 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 友好版本页面。

于 2020-11-17T13:01:06.177 回答
1

尝试覆盖项目版本

mvn versions:set -DnewVersion=<version>

在您的特定情况下:

mvn versions:set -DnewVersion=1.5.46
于 2017-09-29T11:33:48.810 回答
0

你可以

  1. 将您的 pom 复制为temppom.xml
  2. 替换中的版本temppom.xml
  3. mvn -f temppom.xml.
  4. 删除temppom.xml
于 2017-09-29T13:03:49.520 回答
0

Maven 支持交付友好版本,请参阅https://issues.apache.org/jira/browse/MNG-5576。有关更多详细信息,我建议与@khmarbaise 交谈

于 2017-09-29T13:19:34.873 回答
0

该插件提供了一个目标来恢复它所做的更改:

mvn versions:revert
于 2019-05-10T14:56:07.793 回答