这是一个建议使用dependency:analyze
来删除项目中未使用的依赖项的问题。但是,当我阅读有关此的 sonatype 文档时,我开始明白,如果我要删除那些未使用的依赖项,我可能必须小心。
这是相关部分:
删除任何未使用的、已声明的依赖项时要小心,除非您有很好的测试覆盖率,否则您可能会引入运行时错误。字节码优化出现了一个更险恶的问题。例如,编译器替换常量的值并优化引用是合法的。删除此依赖项将导致编译失败,但该工具将其显示为未使用。Maven 依赖插件的未来版本将提供更好的技术来检测和/或忽略这些类型的问题。
我似乎不理解这种情况,他们是否在谈论是否通过反射 API 访问任何依赖项的类/方法的情况?如果是这样,maven-3 的依赖插件是否有更好的技术来处理这个问题?
还有为什么没有
unused + undeclared
依赖分析?我拥有的(未声明的)传递依赖项可以未被使用,但仍然是我的“战争”的一部分,我更愿意排除它,对吗?
编辑:我想关于依赖范围的注释会回答我的第二个问题。