Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven多模块项目版本控制的良好实践_Maven - Fatal编程技术网

Maven多模块项目版本控制的良好实践

Maven多模块项目版本控制的良好实践,maven,Maven,对于在Maven多模块项目中处理模块版本控制的正确方法,我有点困惑。让我介绍一个假项目的结构来解释我的疑问: parent - libs - lib1 - lib2 - batches - batch1 - batch2 除此之外,batch1依赖于lib1,而batch2依赖于lib2。所有这些模块都在1.0.0版中。我正在开发一个新的1.0.1版本。此版本中唯一需要更改的模块是lib1batch1在1.0.2版之前不需要实施这些更改 问题是:哪些模块应该迁移到版本1.0.1

对于在Maven多模块项目中处理模块版本控制的正确方法,我有点困惑。让我介绍一个假项目的结构来解释我的疑问:

parent
- libs
  - lib1
  - lib2
- batches
  - batch1
  - batch2
除此之外,batch1依赖于lib1,而batch2依赖于lib2。所有这些模块都在1.0.0版中。我正在开发一个新的1.0.1版本。此版本中唯一需要更改的模块是lib1batch1在1.0.2版之前不需要实施这些更改

问题是:哪些模块应该迁移到版本1.0.1-SNAPSHOT

我的答案是:lib1libs家长。这些是实际改变的唯一模块(如果我们认为父模块包含“他们的孩子的代码”),但是一些模块仍然是过时的父类1.0.0的孩子,这听起来不对。
您有什么建议?

这方面没有全球标准,完全取决于您的要求

因此,如果您有100个模块,那么您不会在每个版本中发布所有模块,这意味着组件将位于不同的版本上

但如果您有一个小的组件集,那么您可以随时将组件升级到新版本,即使它们没有变化。在这个场景中,您可以仅通过使用父pom版本来管理版本

编辑:


正如OP提到的,他有数百个模块,在这种情况下,每个模块在其pom中都应该有自己的版本。将它们始终保持在同一版本是不可行的。许多组织和项目都遵循这一点。

这个例子是最低限度的,但我的实际项目更像是100个模块的场景。因此,您的意思是,一个版本包含同一库或父库的多个版本是可以接受的,因为并非所有依赖项/继承项都是最新的。请参阅版本控制是特定于项目及其用例的。这里只有指导原则,所以对您有效的是可以接受的:)