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

hel*_*hod 5 gradle

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

多模块构建仍然有有效的用例吗?

lan*_*ava 6

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

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

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

我不认为复合构建应该致力于源代码控制或通过持续集成构建。我认为 CI 应该使用来自 repo(例如 nexus)的 jars。基本上我觉得复合构建服务于相同的目的化解工作区文物复选框M2E

请注意,对复合构建限制之一是它不能包含另一个复合构建。所以我认为将多模块构建提交到源代码控制并使用复合构建将它们在本地连接在一起仅用于开发更安全。

这些是我对如何使用这两个功能的看法,我确信上述情况存在有效的例外情况