如何在非标准maven反应堆构建中设置版本?

时间:2014-05-15 11:59:58

标签: maven jenkins continuous-delivery versions-maven-plugin

由于我无法控制的原因,我们必须使用maven项目设置,其中最顶层的pom.xml实际上不是父pom。现在我们想创建一个jenkins部署管道,当然它会将整个reactor的唯一版本部署到我们的nexus存储库。

我们的设置是这样的:

root (no parent pom)
 +---- parent  (company-wide parent pom is somewhere else)
 +---- module1 (parent pom is ../parent/pom.xml)
 +---- module2 (parent pom is ../parent/pom.xml)

现在我们必须:

  • 将root,parent,module1和module2的版本设置为我们唯一的构建版本
  • 将module1和module2的父版本设置为相同的构建版本
  • 保留外部父pom的版本

我在the versions:set mojo中看不到执行此操作的参数。 调用mvn versions:set -DnewVersion=1.2.3仅设置根pom的版本。完全相同的调用在传统的父/子反应堆构建中完美地起作用。

有没有可能的解决方案?

注意: versions:update-child-modules不是一个选项,因为我们无法定义特定的目标版本

1 个答案:

答案 0 :(得分:4)

已经讨论了on the mailing list并报告了MVERSIONS-131),结论是最好通过实施对通配符的支持来处理这个问题:

mvn versions:set -DgroupId='*' -DartifactId='*' -DoldVersion='*' -DnewVersion=1.2-SNAPSHOT

此改进报告为MVERSIONS-228;它似乎没有在versions-maven-plugin的当前版本(2.1)中实现。