在不操作POM文件的情况下更改Maven项目的版本

时间:2017-09-29 11:31:55

标签: maven version maven-3 pom.xml maven-versions-plugin

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

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

Versions Maven Plugin不幸修改了POM文件。

5 个答案:

答案 0 :(得分:1)

尝试使用

覆盖项目版本
mvn versions:set -DnewVersion=<version>

在您的特定情况下:

mvn versions:set -DnewVersion=1.5.46

答案 1 :(得分:1)

从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 Friendly Versions页。

答案 2 :(得分:0)

你可以

  1. 将您的pom副本复制为https://jenkins.server/jenkins/job/job-name/changes
  2. 替换temppom.xml
  3. 中的版本
  4. 使用temppom.xml构建。
  5. 删除mvn -f temppom.xml

答案 3 :(得分:0)

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

答案 4 :(得分:0)

该插件提供了一个还原其所做更改的目标:

mvn versions:revert