我使用dependency:analyze
来检测依赖性问题。但我发现传递依赖项存在问题,因为插件无法解析此依赖项。
当我执行mvn dependency:tree时,输出显示传递依赖。
依赖关系
project A
dependency B
project C
dependency A
输出 - > (项目C - 路径)/ mvn clean install
[WARNING] Used undeclared dependencies found:
dependency B: compile
插件
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<id>analyze</id>
<phase>verify</phase>
<goals>
<goal>analyze-only</goal>
</goals>
<configuration>
<failOnWarning>true</failOnWarning>
</configuration>
</execution>
</executions>
</plugin>
为什么插件不会检测传递依赖
答案 0 :(得分:5)
依赖性分析按预期工作。
项目C中的代码使用项目B中的类,但它并不直接依赖于项目B.它只是因为它通过项目A过渡依赖于B而编译。更改项目A的依赖项将破坏项目C.这就是我们所试图避免
这不好,如果代码使用B中的类,它应该直接依赖于B.