【问题标题】:What are the disadvantages of using undeclared maven dependencies (through transitive dependencies)?使用未声明的 maven 依赖项(通过传递依赖项)有什么缺点?
【发布时间】:2018-04-11 09:42:28
【问题描述】:

Maven 在项目类路径中包含传递依赖项,以消除每次模块依赖第三方模块时一遍又一遍地重新定义这些依赖项的需要。 使用的传递依赖的版本可以从根 pom 中的依赖管理部分控制。所以是可控的。

那么为什么在项目中使用传递依赖项而不在其 pom 文件中明确声明它被认为是一种不好的做法呢?

【问题讨论】:

  • 简单的回答是...另见JFMeier的回答...

标签: maven


【解决方案1】:

通常,您会在一段时间后更新您的依赖项。 更新可能导致丢失传递依赖,这将直接影响您的程序。

另一方面,如果您明确记下您使用的所有依赖项,则进行更新并查看您真正使用的内容会容易得多。

【讨论】:

  • 更新依赖项是手动操作,如果我这样做,那么我通常会在之后进行完整的构建/测试。如果构建/测试失败,那么我会检查缺少什么。
  • @AhmedHammad 我相信他指的是“您自己”在您的应用程序中使用的传递依赖项,而没有明确声明它们。假设您在应用程序中使用 spring-boot,并且您知道它反过来使用 slf4j。由于 slf4j 是可传递的,您可以使用它“继承自 spring”,而无需在 pom.xml 中明确声明它。过了一段时间你决定升级 spring 版本,但同时 spring 团队决定不再使用 slf4j,在这种情况下你的应用程序将不再编译。
  • @AhmedHammad 更新依赖项并不总是一个手动过程,这可以自动化,这需要进行良好的测试...
猜你喜欢
  • 2013-02-17
  • 2017-06-03
  • 1970-01-01
  • 1970-01-01
  • 2020-03-01
  • 1970-01-01
  • 2016-08-03
  • 2014-04-25
  • 2011-04-10
相关资源
最近更新 更多