【问题标题】:maven: include indirect dependencies or not?maven:是否包含间接依赖?
【发布时间】:2021-04-14 05:38:39
【问题描述】:

假设我有一个依赖于一个外部库 libA 的 maven 项目。 libA 依赖于 libB。在我的 pom.xml 中,我将 libA 声明为依赖项,一切都很好。

不要假设在开发期间,我也开始使用 libB 中的类。 libB 已经通过 libA 拉入项目中,因此一切都可以正常编译并且可以正常工作,但是我是否也应该在 pom.xml 中声明 libB?

如果我不这样做,mvn dependency:analyze 会抱怨我使用了未声明的依赖项。

如果我声明 libB,maven 将只加载一次以避免重复,所以如果我在之后声明它,就好像我没有声明它一样,如果我之前声明它,我可能会强制 libB 的版本与 libA 不兼容.

更好的答案是什么?

【问题讨论】:

  • “更好”明确您的程序(不是您的依赖项)需要什么并声明它。
  • 那么您如何处理潜在的版本不兼容问题?
  • 查看this answer的最新点
  • 一般性答案 您直接使用的所有类都应直接在您的 pom 文件中声明...为了兼容性,您有单元测试和集成测试,这将表明(除非您没有测试。 .)

标签: java maven dependencies


【解决方案1】:

按照费德里科的建议去做。这是 Maven 方式。

【讨论】:

    猜你喜欢
    • 2014-08-07
    • 2012-05-12
    • 1970-01-01
    • 2012-04-04
    • 2023-03-30
    • 2014-02-10
    • 1970-01-01
    • 2018-04-23
    相关资源
    最近更新 更多