gpt4 book ai didi

maven - pom应该声明传递依赖吗?

转载 作者:行者123 更新时间:2023-12-01 00:25:13 25 4
gpt4 key购买 nike

我的模块 MyLibrary 依赖于 Artifact ThirdPartyLibrary。

我的模块 MyApplication 依赖于 MyLibrary,但也直接调用 ThirdPartyLibrary 中的代码。

MyApplication 是否应该在 pom 中明确包含 ThirdPartyLibrary 作为依赖项,还是依赖于 MyLibrary 将其作为依赖项包含在内的事实?

最佳答案

您应该声明您的应用程序直接依赖的每个依赖项,即使(目前)您的另一个直接依赖项将相同的依赖项传递给您的应用程序。原因如下:如果您升级 MyApplication使用 MyLibrary 的 future 版本哪个(你不知道)不再依赖于 ThirdPartyLibrary ,您的代码将突然无法编译 - 直到您添加对 ThirdPartyLibrary 的显式依赖至MyApplication .这意味着这种依赖关系应该一直存在。

仅供引用, maven-dependency-plugin 有一个很有帮助的 dependency:analyze goal它可以帮助您确定您的应用程序应该声明哪些依赖项;它将查看 MyApplication 的代码,请参阅对 MyLibrary 的依赖,并发出警告 MyLibrary已使用,但未声明:

[WARNING] Used undeclared dependencies found:
[WARNING] org.example:ThirdPartyLibrary:jar:1.0:compile

关于maven - pom应该声明传递依赖吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45532334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com