首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Maven依赖分析报告了一些“假阳性”

Maven依赖分析报告了一些“假阳性”
EN

Stack Overflow用户
提问于 2019-12-20 18:14:48
回答 1查看 295关注 0票数 0

我被要求优化一个大型maven项目的依赖项,即查找并删除该项目正在使用的所有依赖项。因此我选择了插件maven-dependency-analysis:

代码语言:javascript
复制
  <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依赖项的报告,请执行命令mvn dependency:analyze -DignoreNonCompile=true。我发现在“未使用的声明依赖项发现”部分中报告的大多数依赖项都可以被删除,没有任何类型的问题,但是有一些依赖项的删除会导致编译错误。我想知道为什么这样的依赖项会包含在“未使用的声明依赖项找到”部分中,以及我是否遗漏了什么?

感谢您的关注。

EN

回答 1

Stack Overflow用户

发布于 2019-12-20 22:41:18

理解这种机制是如何工作的是很重要的:

Maven使用Object WebASM框架来分析原始字节码。它遍历所有类,然后构建这些类引用的所有类的列表。

但是您可以以不同的方式使用类,通常是使用反射(还有一些东西没有编译到类文件中:https://maven.apache.org/plugins/maven-dependency-plugin/faq.html#unused),而这种机制无法检测到这一点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59423501

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档