Maven - 安全地删除未使用的声明的依赖项

时间:2012-08-22 05:17:58

标签: maven maven-2 maven-3

Here's一个问题,建议使用dependency:analyze删除项目中未使用的依赖项。但是当我阅读sonatype document on this时,我开始明白,如果要删除那些未使用的依赖项,我可能必须要小心。

以下是相关部分:

  

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

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

  2. 为什么没有unused + undeclared依赖性分析呢?我拥有的传递依赖(未声明)可能未被使用,但仍然是我的'战争'的一部分,我宁愿排除,对吗?

  3. 编辑:我想dependency scopes上提到的注释将回答我的第二个问题。

1 个答案:

答案 0 :(得分:1)

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