我有一个多模块项目,其中一个模块的构建速度很慢,并且仅在发布时使用(仅发布)。在聚合pom中,除了仅发布模块外,我还指定了所有模块。仅发布模块是在单独的配置文件中指定的,我可以使用maven-release-plugin激活该模块,然后对其进行构建并将其释放。
问题是,当我运行release:prepare时,仅发行模块中的父模块版本未得到更新,这意味着所有其他模块在正确设置父工件版本的情况下进行构建(包括准备和执行) ,仅发行版本的模块仍具有-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都不发布:update-versions 和mvn release:准备按预期更新版本。
答案 0 :(得分:1)
我建议从多模块构建中删除“慢速模块”。而是在构建服务器(Jenkins,Bamboo等)中创建管道,该管道首先构建您的多模块项目,然后(对于发行版)构建“慢速模块”。
这样,您可以避免配置文件中的模块以及打开和关闭模块的所有麻烦。
答案 1 :(得分:1)
一个简单的技巧是不要通过配置文件排除模块,而应该在模块内部进行配置。这样可以避免出现此类问题。