用maven碰撞模块的版本

时间:2015-09-24 12:08:01

标签: java maven semantic-versioning

我有一个很大的多模块maven项目(数十个模块,4个嵌套级别)。

每个模块都有自己的语义版本(可以是SNAPSHOT)。

我想找到用一个命令或脚本自动碰撞每个模块主要版本的方法,以避免每个模块发生变化。

所以我有例如

parent POM (1.2.3-SNAPSHOT)
|-- api-module (3.4.5)
|-- impl-module (5.6.7-SNAPSHOT)
|-- another-parent-module (1.0.1-SNAPSHOT)
|--|--sub-module1 (1.2.3)
|--|--sub-module2 (2.3.4)

在碰撞后我想要

parent POM (2.0.0-SNAPSHOT)
|-- api-module (4.0.0)
|-- impl-module (6.0.0-SNAPSHOT)
|-- another-parent-module (2.0.0-SNAPSHOT)
|--|--sub-module1 (2.0.0)
|--|--sub-module2 (3.0.0)

我知道Maven Release PluginVersions Maven Plugin,但我无法弄清楚如何让它们自动碰到主要版本。

你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

在多模块项目中,每个模块应具有相同的版本。我建议将模块拆分为单独的Maven项目,然后更容易使用Maven Release Plugin和Versions Maven插件。

答案 1 :(得分:0)

我同意

的想法
  

多模块项目,每个模块应该具有相同的版本

但是我们已经在一个大项目中有一些模块结构,其中有几个团队参与其中,并且无法轻易更改。

由于我没有找到解决方案,我为此创建了一个groovy脚本:https://github.com/ddska/maven-semver-bumper