4

由于我无法控制的原因,我们必须使用 maven 项目设置,其中最顶层的 pom.xml 实际上不是父 pom。现在我们想创建一个 jenkins 部署管道,它当然会将整个反应器的唯一版本部署到我们的 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 的版本不变

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

有没有可能的解决方案?

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

4

1 回答 1

4

这已在邮件列表中讨论并报告(MVERSIONS-131),结论是最好通过实现对通配符的支持来处理:

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

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

于 2014-05-15T13:59:08.133 回答