Here's一个问题,建议使用dependency:analyze
删除项目中未使用的依赖项。但是当我阅读sonatype document on this时,我开始明白,如果要删除那些未使用的依赖项,我可能必须要小心。
以下是相关部分:
删除任何未使用的声明的依赖项时要小心,除非你 有非常好的测试覆盖率,或者您可能会引入运行时错误。 字节码优化会出现一个更加险恶的问题。例如, 编译器替换常量和值是合法的 优化远离参考。删除此依赖项将导致 编译失败,但该工具将其显示为未使用。未来的版本 Maven Dependency插件将提供更好的技术 检测和/或忽略这些类型的问题。
我似乎不理解这种情况,他们是否在讨论如果通过反射API访问任何依赖项的类/方法的情况?如果是这样,maven-3的依赖插件是否有更好的处理方法呢?
为什么没有unused + undeclared
依赖性分析呢?我拥有的传递依赖(未声明)可能未被使用,但仍然是我的'战争'的一部分,我宁愿排除,对吗?
编辑:我想dependency scopes上提到的注释将回答我的第二个问题。
答案 0 :(得分:1)
正如你在1.中描述的那样,他们正在谈论像这样的东西(反射),或者可能是依赖注入(在幕后使用反射)之类的东西。