2

这是一个建议使用dependency:analyze来删除项目中未使用的依赖项的问题。但是,当我阅读有关此的 sonatype 文档时,我开始明白,如果我要删除那些未使用的依赖项,我可能必须小心。

这是相关部分:

删除任何未使用的、已声明的依赖项时要小心,除非您有很好的测试覆盖率,否则您可能会引入运行时错误。字节码优化出现了一个更险恶的问题。例如,编译器替换常量的值并优化引用是合法的。删除此依赖项将导致编译失败,但该工具将其显示为未使用。Maven 依赖插件的未来版本将提供更好的技术来检测和/或忽略这些类型的问题。

  1. 我似乎不理解这种情况,他们是否在谈论是否通过反射 API 访问任何依赖项的类/方法的情况?如果是这样,maven-3 的依赖插件是否有更好的技术来处理这个问题?

  2. 还有为什么没有unused + undeclared依赖分析?我拥有的(未声明的)传递依赖项可以未被使用,但仍然是我的“战争”的一部分,我更愿意排除它,对吗?

编辑:我想关于依赖范围的注释会回答我的第二个问题。

4

1 回答 1

1

正如您在 1. 中所描述的那样,他们正在谈论这样的事情(反射),或者可能是依赖注入(在幕后使用反射)之类的事情。

于 2012-08-22T06:04:42.743 回答