【问题标题】:Version of parent module in child modules specified in profiles not getting updated by Maven-release-pluginMaven-release-plugin 未更新配置文件中指定的子模块中的父模块版本
【发布时间】:2019-09-24 02:15:26
【问题描述】:

我有一个多模块项目,其中一个模块构建速度很慢,并且仅在发布时使用(仅发布)。在聚合 pom 中,除了仅发布模块之外,我还指定了所有模块。仅发布模块在一个单独的配置文件中指定,我使用 maven-release-plugin 激活它并构建它并正常发布它。

问题是,当我运行 release:prepare 时,仅发布模块中的父模块的版本没有得到更新,这意味着所有其他模块在正确设置父工件版本的情况下构建(在准备和执行中) , release-only 模块在版本中仍然有 -SNAPSHOT。

我发现这似乎是相关的问题。但没有解决办法。 https://issues.apache.org/jira/browse/MRELEASE-843

来自聚合 pom 的一些简单代码,解释结构。

<profile>
<id>build-rpm</id>
 <modules>
   <module>release-only</module>
 </modules>
</profile>

<plugin>
<artifactId>maven-release-plugin</artifactId>
 <configuration>
   <releaseProfiles>build-rpm</releaseProfiles>
 </configuration>
</plugin>

<modules>
  <module>module1</module>
  <module>module2</module>
</modules>

运行 mvn release:prepare 时,我希望更新所有模块中的版本。 (就像正常的 mvn 版本一样:set -DnewVersion=xxx 按预期工作)

mvn release:update-versions 都没有 和 mvn release:prepare 按预期更新版本。

【问题讨论】:

  • 永远不要在配置文件中使用模块...真是个坏主意blog.soebes.de/blog/2013/11/09/… 此外,问题是:模块中到底什么是慢的?我想你的测试/集成测试?
  • 是的,这主要是因为它是 100% 不必要的,因为它构建了一个我们用于安装的 RPM 包,并且它的过程非常缓慢。感谢您提供的信息,请检查该帖子,因为它看起来可以解决我的问题。
  • 简单的技巧是不要通过配置文件排除模块,而是应该在模块内部创建配置文件。这将防止您出现此类问题。
  • 是的,我得到了这个工作,如果可以的话,我会把你的评论标记为anwser! :)

标签: maven maven-release-plugin


【解决方案1】:

简单的技巧是不要通过配置文件排除模块,而是应该在模块内创建配置文件。这将防止您出现此类问题。

【讨论】:

    【解决方案2】:

    我建议从多模块构建中删除“慢模块”。相反,在您的构建服务器(Jenkins、Bamboo 等)中创建一个管道,该管道首先构建您的多模块项目,然后(在发布的情况下)构建“慢模块”。

    这样,您就可以避免使用配置文件中的模块以及关闭和打开模块的所有麻烦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-19
      • 2017-01-24
      • 2018-07-25
      • 2011-09-12
      • 1970-01-01
      • 2016-05-21
      • 1970-01-01
      相关资源
      最近更新 更多