【问题标题】:Do I need to add a maven dependency explicitly, when I already get it through some other dependency?当我已经通过其他依赖项获得它时,是否需要显式添加 Maven 依赖项?
【发布时间】:2015-06-11 11:34:52
【问题描述】:

考虑以下场景,

我开发了一个依赖于工件的 maven 工件(假设依赖项是 artifact_a)。

artifact_a 还依赖于其他一些工件artifact_b。这两个都不是我开发的。

现在,我还需要在我的工件中使用 artifact_b 中的功能。

即使我没有在我的工件 pom 中添加 artifact_b 的依赖项,我的工件仍然可以成功构建,因为我自动通过 artifact_a 依赖项获取它。

我有两个选择,

  • 显式添加artifact_b 依赖项。这将是多余的,并且 如果我不添加与artifact_a 中添加的相同版本,我会添加 不知道会发生什么
  • 不要显式添加artifact_b 依赖项。如果我不添加它 明确地,当我增加artifact_a 的版本时,新版本 可能不再依赖artifact_b,导致我的构建失败 人工制品。另外,如果我有很多依赖项,可能很难 查找依赖项是否通过 current 继承 依赖关系。

有推荐的吗?如果没有,有什么更好的方法?

【问题讨论】:

  • Maven 处理传递依赖,通常是正确的。如果依赖项需要其他东西,显然它就在那里,或者依赖项无法使用它。

标签: java maven


【解决方案1】:

即使我没有在我的工件 pom 中添加对 artifact_b 的依赖项,我的工件仍然可以成功构建,因为我通过 artifact_a 依赖项自动获取它。

这实际上已经是答案了。如果它构建成功,那么我会暗示这没关系。

【讨论】:

    【解决方案2】:

    最好的测试是构建应用程序。如果失败,您需要添加它:-)

    您不需要显式添加它。所有都是从其他 pom 继承的。如果不是,那么您的artifact_b 的 pom 不正确。

    【讨论】:

      猜你喜欢
      • 2015-11-06
      • 1970-01-01
      • 2013-04-17
      • 2013-04-07
      • 2013-02-26
      • 1970-01-01
      • 2014-07-01
      • 2019-08-18
      • 1970-01-01
      相关资源
      最近更新 更多