【发布时间】: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