当这些模块之一发生变化时,它们将被转换为快照。
以下是一个示例:
Parent v14.0
- module1 v1.5.0
- dependency1(module2 v15.0.0)
- dependency2(external-jar v12.0.1)
- module2 v15.0.0
- module3 v3.1.0
如果module2发生变化,则module2的版本将变为v15.0-SNAPSHOT,module1变成v1.5-SNAPSHOT。父类保持不变。
之所以不在父模块和子模块上使用相同的版本号,是因为我们希望将更新限制在某些模块上,而不影响其他模块的版本。
这种设计已经存在很长时间了,并且有几个bash脚本来支持更新,虽然它们不能处理所有情况。无论如何,我们没有一个一键发布流程,并且我们觉得用这种方法还远离此目标。
我们不知道如何说服管理层采用所有模块统一版本的方法。您对以上内容有什么看法?您是否曾经遇到过使用以上结构的项目,以及它的运行状况如何?
谢谢!
<modules/>
的Maven项目。它的打包类型只是pom
。在您的情况下,您似乎有一个父聚合器。我建议不要采用这种方法,因为它不够灵活。例如,您可以拥有一个聚合器,其中包含10个模块,其中一部分具有一个父级,另一部分具有另一个父级(扩展第一个父级)。这对于为聚合器中的不同模块集定义不同的插件规则或依赖项集是很常见的。 - carlspringset
、use-releases
、use-next-releases
、use-next-snapshots
、use-latest-releases
、use-latest-snapshots
... - carlspringmaven-release-plugin
与这种方法很好地配合使用。如果您有一个聚合器,它将要求您为每个模块提供下一个版本。这就是为什么您应该尝试将可以独立版本的模块分开,并将使用相同版本的模块分组的原因。 - carlspring