在Maven 2中,我怎么知道传递依赖来自哪个依赖?


97

我想知道pom.xml中描述的哪个依赖项在目标目录中带来了传递性依赖项。

更准确地说,我的WEB-INF / lib目录中有一个库“ poi-2.5.1-final-20040804.jar”,我想知道pom.xml中的哪个依赖项会带来这种情况。

Answers:


132

要添加到@David Crow,这是Maven站点中的dependency:tree示例

mvn dependency:tree -Dincludes=velocity:velocity

可能输出

[INFO] [dependency:tree]
[INFO] org.apache.maven.plugins:maven-dependency-plugin:maven-plugin:2.0-alpha-5-SNAPSHOT
[INFO] \- org.apache.maven.doxia:doxia-site-renderer:jar:1.0-alpha-8:compile
[INFO]    \- org.codehaus.plexus:plexus-velocity:jar:1.1.3:compile
[INFO]       \- velocity:velocity:jar:1.4:compile

1
这对我没有用;我得到的只是关于不受支持的“旧版”值的错误。不过,运行@David Crow的版本(即没有速度标志)可以正常工作。
弗拉德·施纳科夫斯基(Flad Schnakovszki)'17年



2

您可以通过以下方式获得许多报告

mvn网站

其中之一是依赖性报告。


1

如果使用“ -x”开关运行maven,它将打印出大量诊断信息,我猜想可以从那里获取相关的依赖路径。


2
实际上,这个答案很有用。我正面临着因将Maven从3.0升级到3.3导致的以太类未定义的错误,并且以下命令显示另一个maven插件仍在采购org.apache.maven:maven-core的3.0.5版本: mvn -X dependency:tree -Dverbose |grep -C20 sonatype.aether
ekarak

尽管“ -X”(大写字母,备用名称“ --debug”)通常很有用,但它不会告诉您版本号的由来。无论如何,不​​在Maven 3.6.0上。
toolforger '19

1

如果您已经使用mvn site为maven生成了项目站点,则依赖项信息也将包含在“项目信息/依赖项”报告中。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.