我正在使用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
节点也没有显示它们。但奇怪的是,它显示了我项目的其他传递依赖性。
答案 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。