【问题标题】:Declare as dependency or as parent声明为依赖项或父项
【发布时间】:2012-01-18 01:13:02
【问题描述】:

如果你有项目 A 并且它需要项目 B 的所有依赖项,你是使用继承声明项目 B 的父项目 A 还是项目 A 的依赖项?它们似乎具有相同的效果。

【问题讨论】:

    标签: inheritance maven dependencies


    【解决方案1】:

    两种方式不同,一种是继承,一种是简单依赖。

    通过依赖,您将只有项目 B 的二进制传递依赖。

    通过使用作为父项目,您将继承插件、构建模型、存储库、依赖管理、依赖项等配置,这取决于具体情况。

    我的经验法则是针对 scm 配置、项目配置和开发或公司标准,我使用父项目(继承)。

    【讨论】:

      【解决方案2】:

      我会说如果项目 B 打算充当“通用父级”或类似的角色 - 也就是说,许多具有相同依赖项的项目的起点(或者它们的依赖项具有相同的起点)然后继续将 B 设为 parent

      否则,如果它实际上更像是一个“方便的东西” - 例如它有很多项目会发现有用的实用程序/核心类型方法,但不要依赖于它们的存在,那么它在逻辑上就是一个依赖。

      您甚至可以考虑按照这些思路将项目 B 拆分为两个。这就是我过去所做的:

      mygroup-parent 是一个仅包含 POM 文件的项目,该文件具有我希望 每个项目 获得的依赖项 - 强制执行标准方法。例如,我在里面有TestNGMockito

      mygroup-core 是一个成熟的 Java 项目,它有很多方便使用的东西很多,但不是必须的。我有针对特定于我的站点的帮助方法,以及 Apache HttpClient 和 Google Guava 等依赖项。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-01-25
        • 1970-01-01
        • 2017-06-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-24
        • 1970-01-01
        相关资源
        最近更新 更多