mvn依赖如何:分析工作?

时间:2018-01-18 07:29:25

标签: java maven maven-3

有人可以告诉我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

2 个答案:

答案 0 :(得分:2)

  

使用未声明的依赖项表示什么?这是否意味着这不是在pom.xml依赖项中声明,而是在代码中使用并通过一些传递依赖包含在内?

完全!

  

是否发现未使用的声明依赖项仅检查pom.xml中声明的依赖项,还是检查传递依赖项?

声明的依赖项是在您的 POM中声明的依赖项。因此插件在其检查中不包含传递依赖。

请注意,默认情况下,插件会执行字节码分析,这对于仅与常量或注释一起使用的依赖项是有问题的。在某些情况下,这可能会导致错误报告。有关详细信息,请参阅FAQ

答案 1 :(得分:0)

如果我没记错的话,maven使用WebASM框架来分析字节码,并检查是否使用了lib。不要相信它,因为有时maven认为没有使用lib(依赖),但确实如此。