我对在Maven多模块项目中处理模块版本控制的正确方法感到困惑。让我介绍一个假项目的结构来解释我的怀疑:
parent
- libs
- lib1
- lib2
- batches
- batch1
- batch2
除此之外, batch1 依赖于 lib1 ,而 lib2 依赖 batch2 。所有这些模块都在1.0.0版本中。我正在开发一个新的1.0.1版本。此版本中唯一需要更改的模块是 lib1 。 batch1 在版本1.0.2之前不需要实现这些更改。
问题是:哪些模块应移至版本 1.0.1-SNAPSHOT ?
我的答案是: lib1 , libs 和父级。那些是实际改变的唯一模块(如果我们认为父模块“包含”他们孩子的代码)但是一些模块仍然是过时的父1.0.0的子项,这听起来不对。
你会推荐什么?
答案 0 :(得分:1)
没有全球标准,这完全取决于您的要求。
因此,如果您有100个模块,那么您不会在每个版本中发布所有模块,这意味着组件将在不同版本上。
但是如果你有一个小套装,那么你可以随时将组件升级到新版本,即使它们没有变化。在这种情况下,您只需使用父pom版本即可管理版本。
编辑:
如OP提到的那样,他有很多模块,在这种情况下,每个模块都应该有自己的pom版本。将它们保持在同一版本是不可行的。许多组织和项目都遵循这一点。