复合构建是否会使多模块构建过时?

时间:2016-11-09 10:25:40

标签: gradle

我很难理解何时使用复合构建与多模块构建。似乎两者都可以用来实现类似的事情。

多模块构建是否仍然有效用例?

1 个答案:

答案 0 :(得分:4)

在我看来,多模块构建是一个单独的系统,一起构建和发布。构建中的每个模块都应该具有相同的版本,并且可能由同一个团队开发并提交到单个存储库(git / svn等)。

我认为复合构建仅适用于开发,并且适用于开发人员在两个或更多系统上工作的时间(可能位于具有不同版本的不同存储库中)周期/版本)。例如:

  • 在验证另一个系统中的更改的同时为开源库开发补丁
  • 在一个单独的内部存储库(可能由多个团队共享)中调整实用程序库,同时验证另一个系统中的更改
  • 跨越两个或更多系统的修复/改进(可能在单独的回购中)

我不认为复合构建应该致力于源代码控制或通过持续集成构建。我认为CI应该使用来自回购的罐子(例如nexus)。基本上我认为复合构建与resolve workspace artifacts checkbox

中的m2e具有相同的目的

请注意,restrictions on a composite build之一是它不能包含其他复合构建。因此,我认为将多模块构建提交到源代码控制并使用复合构建在本地将它们连接在一起以进行开发更安全。

这些是我对如何使用这两个功能的看法,我确定上面有有效的例外