【问题标题】:How to set versions in a non-standard maven reactor build?如何在非标准 Maven 反应堆构建中设置版本?
【发布时间】:2014-05-15 11:59:57
【问题描述】:

由于我无法控制的原因,我们必须使用 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 的版本不变

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

有什么可能的解决办法吗?

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

【问题讨论】:

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


    【解决方案1】:

    已在 on the mailing list 讨论并报告 (MVERSIONS-131) 得出的结论是,最好通过实现对通配符的支持来处理此问题:

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

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

    【讨论】:

    • 谢谢。因此,我们似乎一直坚持创建自己的 maven 插件
    • 看起来 MVERSIONS-228 已修复 (r18605),但尚未发布该插件的 2.2 版本。
    • 似乎问题刚刚在 codehaus 关闭时被删除,因为在 GH 项目页面和 Google 中都找不到它
    • 我相信修复 (this commit) 包含在 2.2 中,其中有 now been released。
    猜你喜欢
    • 1970-01-01
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 2013-11-03
    • 2023-03-12
    • 2015-08-02
    相关资源
    最近更新 更多