【问题标题】:Maven Dependency Management : Transitive Vs Direct DependencyMaven 依赖管理:传递与直接依赖
【发布时间】:2014-04-28 18:21:16
【问题描述】:

考虑一个具有以下依赖关系的战争应用程序。

War A --> Jar A --> jar B

War A 仅添加 Jar A 的依赖项。获取 jar B 作为传递依赖。 但是假设 B 发生了一些变化,那么我们需要用新版本的 B 构建 A。这样做是否正确?每次 B 发生变化时,A 的 pom 都需要选择 B 的最新变化。 战争 A 应该指定 A 和 B 两者的直接依赖关系还是只指定 A?

是否有一些规则说我们应该理想地声明直接依赖于我们直接使用 API 的那些 jar。

在上述情况下,jar B 中的 java 类被 war A 调用。

请帮助我理解。

【问题讨论】:

  • 声明直接依赖的麻烦在于你很快就会发现你的 POM 充满了依赖。通常会进行任何版本更改,以便它们向后兼容。因此,B 中的更新并不一定意味着您也必须更新 A。

标签: java maven maven-3


【解决方案1】:

一般来说,最好保持 maven 的约定,并允许它解决传递依赖,这样你就不会陷入依赖地狱!
如果要测试更改,可以出于测试目的添加直接依赖项。

保持简单。让 Maven 来管理它。

我希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2019-08-23
    • 2015-04-03
    • 2021-08-18
    • 2018-07-06
    • 1970-01-01
    • 2012-06-30
    • 1970-01-01
    相关资源
    最近更新 更多