【发布时间】: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