【问题标题】:Do composite builds make multi-module builds obsolete?复合构建是否会使多模块构建过时?
【发布时间】:2017-03-23 03:07:14
【问题描述】:

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

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

【问题讨论】:

    标签: gradle


    【解决方案1】:

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

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

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

    我不认为复合构建应该致力于源代码控制或通过持续集成构建。我认为 CI 应该使用来自 repo 的 jars(例如 nexus)。基本上我认为复合构建与m2e中的resolve workspace artifacts checkbox具有相同的目的

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

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

    【讨论】:

    • 例如,我的组织需要从单体存储库迁移到独立库。复合构建创造了过渡所需的灵活性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多