在 Maven 2 中,我如何知道传递依赖来自哪个依赖?
Posted
技术标签:
【中文标题】在 Maven 2 中,我如何知道传递依赖来自哪个依赖?【英文标题】:In Maven 2, how do I know from which dependency comes a transitive dependency? 【发布时间】:2010-09-07 05:49:02 【问题描述】:我想知道我的 pom.xml 中描述的哪个依赖在我的目标目录中带来了传递依赖。
更准确地说,我的 WEB-INF/lib 目录中有库“poi-2.5.1-final-20040804.jar”,我想知道我的 pom.xml 中的哪个依赖项带来了它。
【问题讨论】:
【参考方案1】:要添加到 @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 的版本(即没有速度标志)运行良好。【参考方案2】:使用Maven Dependency Plugin:
mvn dependency:tree
【讨论】:
【参考方案3】:如果您使用 eclipse 和 m2eclipse plugin,那么有一个图形版本的依赖树,您可以在其中按范围等进行过滤。
【讨论】:
【参考方案4】:如果你用“-x”开关运行maven,它会打印出大量的诊断信息,我想相关的依赖路径可以从那里得到。
【讨论】:
其实这个答案很有用。我面对的是众所周知的aether class undefined bug caused by upgrading my Maven from 3.0 to 3.3,下面的命令显示另一个 maven 插件仍在采购 org.apache.maven:maven-core 的 3.0.5 版本:mvn -X dependency:tree -Dverbose |grep -C20 sonatype.aether
虽然“-X”(大写,备用名称“--debug”)通常很有用,但它不会告诉您版本号的来源。无论如何,不在 Maven 3.6.0 上。【参考方案5】:
你可以有很多报告
mvn 网站
其中之一是依赖报告。
【讨论】:
【参考方案6】:如果您已使用 mvn site 为项目生成站点,则依赖信息也包含在项目信息/依赖项报告中。
【讨论】:
以上是关于在 Maven 2 中,我如何知道传递依赖来自哪个依赖?的主要内容,如果未能解决你的问题,请参考以下文章