我对在 Maven 多模块项目中处理模块版本控制的正确方法有点困惑。让我介绍一个假项目的结构来解释我的疑惑:
parent
- libs
- lib1
- lib2
- batches
- batch1
- batch2
再加上 批处理1 依赖于 lib1 , 和 批处理2 在 lib2 .所有这些模块都在版本 1.0.0 中。我正在开发一个新的 1.0.1 版本。此版本中唯一需要更改的模块是 lib1 . 批处理1 直到版本 1.0.2 才需要实现这些更改。
问题是:哪些模块应该移动到版本 1.0.1-快照 ?
我的回答是: lib1 , 库 和 家长 .这些是唯一实际更改的模块(如果我们认为父模块“包含”其子模块的代码)但某些模块将仍然是过时的父 1.0.0 的子模块,这听起来不对。
你会推荐什么?
最佳答案
这没有全局标准,这完全取决于您的要求。
因此,如果您有 100 个模块,那么您不会在每次发布时都发布所有模块,这意味着组件将在不同的版本上。
但是如果你有一个小集合,那么即使它们没有变化,你也可以随时将组件升级到新版本。在这种情况下,您可以只使用父 pom 版本来管理版本。
编辑:
正如 OP 所提到的,他有数百个模块,在这种情况下,每个模块都应该在其 pom.xml 中有自己的版本。始终将它们保持在同一版本是不可行的。许多组织和项目都遵循这一点。
关于maven - Maven 多模块项目版本控制的良好实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28850160/