配置文件中指定的子模块中父模块的版本未由 Maven-release-plugin 更新
Version of parent module in child modules specified in profiles not getting updated by Maven-release-plugin
我有一个多模块项目,其中一个模块构建速度很慢并且仅在发布时使用(仅发布)。在聚合 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>
当 运行ning mvn release:prepare 我想更新我所有模块中的版本。 (就像正常的 mvn versions:set -DnewVersion=xxx 一样按预期工作)
mvn 都没有 release:update-versions
和 mvn release:prepare 按预期更新版本。
我建议从多模块构建中删除 "slow module"。相反,在您的构建服务器(Jenkins、Bamboo 等)中创建一个管道,它首先构建您的多模块项目,然后(在发布的情况下)构建 "slow module"。
这样,您就可以避免配置文件中的模块以及关闭和打开模块的所有麻烦。
简单的技巧是不要通过配置文件排除模块,而应该在模块内部创建配置文件。这将防止您遇到此类问题。
我有一个多模块项目,其中一个模块构建速度很慢并且仅在发布时使用(仅发布)。在聚合 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>
当 运行ning mvn release:prepare 我想更新我所有模块中的版本。 (就像正常的 mvn versions:set -DnewVersion=xxx 一样按预期工作)
mvn 都没有 release:update-versions 和 mvn release:prepare 按预期更新版本。
我建议从多模块构建中删除 "slow module"。相反,在您的构建服务器(Jenkins、Bamboo 等)中创建一个管道,它首先构建您的多模块项目,然后(在发布的情况下)构建 "slow module"。
这样,您就可以避免配置文件中的模块以及关闭和打开模块的所有麻烦。
简单的技巧是不要通过配置文件排除模块,而应该在模块内部创建配置文件。这将防止您遇到此类问题。