有人可以告诉我mvn dependency:analyze
的工作原理吗?我的一个项目中的mvn dependency:analyze
输出显示
[WARNING] Used undeclared dependencies found:
[WARNING] org.apache.commons:commons-lang3:jar:3.4:compile
[WARNING] com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile
...
[WARNING] Unused declared dependencies found:
[WARNING] org.springframework.boot:spring-boot-starter-test:jar:1.5.4.RELEASE:test
[WARNING] org.springframework.restdocs:spring-restdocs-mockmvc:jar:1.1.3.RELEASE:test
[WARNING] ch.qos.logback:logback-classic:jar:1.1.11:compile
有人可以让我知道以下内容 -
Used undeclared dependencies found
表示什么?是否意味着这不是在pom.xml
dependencies
中声明,而是在代码中使用并通过一些传递依赖包含在内?Unused declared dependencies found
是否仅检查dependencies
中声明的pom.xml
,还是检查传递依赖关系?Maven版本 - 3.5.0
答案 0 :(得分:2)
使用未声明的依赖项表示什么?这是否意味着这不是在pom.xml依赖项中声明,而是在代码中使用并通过一些传递依赖包含在内?
完全!
是否发现未使用的声明依赖项仅检查pom.xml中声明的依赖项,还是检查传递依赖项?
声明的依赖项是在您的 POM中声明的依赖项。因此插件在其检查中不包含传递依赖。
请注意,默认情况下,插件会执行字节码分析,这对于仅与常量或注释一起使用的依赖项是有问题的。在某些情况下,这可能会导致错误报告。有关详细信息,请参阅FAQ。
答案 1 :(得分:0)
如果我没记错的话,maven使用WebASM框架来分析字节码,并检查是否使用了lib。不要相信它,因为有时maven认为没有使用lib(依赖),但确实如此。