Maven依赖性分析报告了一些;“误报”;
我被要求优化一个大型maven项目的依赖项,即查找并删除该项目现在使用的所有依赖项。因此,我选择了插件maven依赖性分析:Maven依赖性分析报告了一些;“误报”;,maven,Maven,我被要求优化一个大型maven项目的依赖项,即查找并删除该项目现在使用的所有依赖项。因此,我选择了插件maven依赖性分析: <plugin> <artifactId>maven-dependency-plugin</artifactId> <version>3.1.1</version> <dependencies> <dependency&
<plugin>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-dependency-analyzer</artifactId>
<version>1.11.1</version>
</dependency>
</dependencies>
</plugin>
maven依赖插件
3.1.1
org.apache.maven.shared
maven依赖性分析器
1.11.1
要输出未使用的maven依赖项的报告,请执行命令mvn dependency:analyze-dignonencompile=true
。我发现在“Unused declared dependencies found”部分下报告的大多数依赖项都可以被删除而不会出现任何问题,但是有一些依赖项的删除会导致编译错误。我想知道为什么在“未使用的已声明依赖项的发现”部分中包含这些依赖项,以及我是否遗漏了一些东西
感谢您的关注。了解此机制的工作原理非常重要: Maven使用对象WebASM框架来分析原始字节码。它遍历所有类,然后构建这些引用的所有类的列表 但是您可以以不同的方式使用类,通常使用反射(还有一些东西没有编译到类文件中:),而这种机制无法检测到这一点