Maven依赖:树没有显示所有传递依赖

时间:2015-12-30 12:43:23

标签: maven

我无法理解 depencendy:tree 输出的行为。在更高的模块上运行插件时,我错过了它所依赖的模块的重要信息。但是当我在下层模块上运行插件时,我可以看到它们的缺点。这是一个显示问题(名称已更改)的示例:

mvn -pl foo:bar-application dependency:tree -Dincludes=foo:*
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building bar-application 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ bar-application ---
[INFO] foo:bar-application:ear:0.0.1-SNAPSHOT
[INFO] +- foo:bar-business:ejb:0.0.1-SNAPSHOT:compile
[INFO] |  +- foo:common-util:jar:0.0.1-SNAPSHOT:compile
...
[INFO] +- foo:bar-web:war:0.0.1-SNAPSHOT:compile
[INFO] \- foo:common-logging:jar:0.0.1-SNAPSHOT:compile
[INFO] ------------------------------------------------------------------------

树显示对 bar-web 的依赖性,但只有一个依赖于 bar-web 到其他项目(常用日志) )。

bar-web 有更多的依赖关系:

mvn -pl foo:bar-web dependency:tree -Dincludes=foo:*
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building bar-web 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ bar-web ---
[INFO] foo:bar-web:war:0.0.1-SNAPSHOT
[INFO] +- foo:common-logging:jar:0.0.1-SNAPSHOT:compile
[INFO] +- foo:culprit-business-client:jar:0.0.1-SNAPSHOT:compile
...
[INFO] +- foo:common-rest:jar:0.0.1-SNAPSHOT:compile
[INFO] |  \- foo:config-business-client:jar:0.0.1-SNAPSHOT:compile
[INFO] \- foo:bar-business:jar:0.0.1-SNAPSHOT:provided
[INFO]    \- foo:some-client:jar:0.0.1-SNAPSHOT:provided
[INFO] ------------------------------------------------------------------------

在检查 bar-application 时,为什么没有显示其他依赖项?我花了一段时间寻找罪魁祸首。 我正在使用

mvn --version
Apache Maven 3.0.5

2 个答案:

答案 0 :(得分:2)

WAR包含其在存档中的依赖关系,这就是为什么Maven不会传递它们传递给其他工件,具体取决于WAR工件。

答案 1 :(得分:1)

mvn dependency:tree

向您展示有效的依赖项,例如实际依赖项的来源。

mvn dependency:tree -Dverbose

将向您显示所有传递依赖项,包括排除它们的原因