ChatGPT解决这个技术问题 Extra ChatGPT

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

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

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


A
A. Rex

要添加到 @David Crow,这里是来自 Maven 站点的 a dependency:tree example

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

这对我不起作用;我得到的只是关于不受支持的“遗留”值的错误。运行@David Crow 的版本(即没有速度标志)工作正常。
D
David Crow

使用 Maven Dependency Plugin

mvn dependency:tree

K
Koray Tugay

如果您使用 eclipse 和 m2eclipse plugin,则有一个图形版本的依赖树,您可以在其中按范围等进行过滤。


V
Valters Vingolds

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


事实上,这个答案很有用。我面对的是众所周知的 aether class undefined bug caused by upgrading my Maven from 3.0 to 3.3,下面的命令显示另一个 maven 插件仍在采购 org.apache.maven:maven-core: mvn -X dependency:tree -Dverbose |grep -C20 sonatype.aether 的 3.0.5 版
虽然“-X”(大写,备用名称“--debug”)通常很有用,但它不会告诉您版本号的来源。无论如何,不在 Maven 3.6.0 上。
B
Bang

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

mvn网站

其中之一是依赖性报告。


F
Filip Korling

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