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

时间:2020-03-05 18:44:54  来源:igfitidea点击:

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

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

解决方案

回答

使用Maven依赖插件:

mvn dependency:tree

回答

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

回答

要添加到@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

回答

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

回答

如果我们使用eclipse和m2eclipse插件(http://m2eclipse.sonatype.org),那么将有一个图形化版本的依赖树,我们可以在其中按作用域等进行过滤。

回答

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

mvn site

其中之一是依赖性报告。