如何找到Maven传递依赖的父级

时间:2014-01-02 07:12:29

标签: eclipse spring maven spring-mvc log4j

我正在使用Maven和Eclipse构建Java(Web)应用程序。

当我查看我的.war文件时,我可以在那里看到以下日志记录库:

log4j-1.2.14.jar
log4j-1.2.17.jar
slf4j-api-1.7.5.jar
slf4j-log4j12-1.7.5.jar

我没有在我的pom.xml中声明这些库,所以它们可能是传递依赖(即依赖关系的依赖)。

如何找出哪些依赖项依赖于这些库?

我尝试使用mvn dependency:tree插件,但它没有显示这些.jar中的任何一个。

在Eclipse中,Java Resources > Libraries > Maven Dependencies节点也没有显示它们。但奇怪的是,它显示了我项目的其他传递依赖性。

3 个答案:

答案 0 :(得分:3)

如果您只想依赖maven,可能需要仔细查看依赖插件,这里有两个例子:

mvn dependency:tree -Dverbose将显示更详细的信息 - 特别是例如,如果工件与其他工件版本冲突(例如收敛问题)将被省略。它还会显示具有所有传递依赖关系的hirachy。

要对特定的人工制品进行分析(例如,查找谁提供特定的传递依赖性),您可以这样指定:

mvn dependency:tree -Dincludes=com.my.group.id:my-artefact-id:jar:1.0.1 -Dverbose

(你显然需要根据你的需要调整人工制品,包装类型和版本)

答案 1 :(得分:2)

在Eclipse中打开pom.xml并转到Dependency Hierarchy标签

答案 2 :(得分:1)

![在此处输入图片说明] [1]

它应该在Dependency Hierarchy选项卡中显示依赖关系树。 Evgeniy Dorofeev是对的。 类似于附带的截图

你可能需要扩展所有。

编辑:完善答案。 这有点奇怪。但这是我发现的。

如果你转到http://mvnrepository.com/artifact/log4j/log4j/1.2.17

它将显示使用哪些依赖项以及jar文件所依赖的依赖项。

web-mvc 3.2.4的springframework依赖项将下载spring-core,spring-core依赖项使用log4j。