log4j 如何查找Maven传递依赖项的父项

e1xvtsh3  于 2022-11-06  发布在  Maven
关注(0)|答案(3)|浏览(237)

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

f0ofjuux

f0ofjuux1#

如果你只想依赖maven,你可能想仔细看看依赖插件,这里有两个例子:
mvn dependency:tree -Dverbose将显示更详细的信息-尤其是在某个工件因与另一个工件版本冲突而被忽略的情况下(例如,收敛问题)。它还将显示包含所有可传递依赖项的层次结构。
要分析一个特定的工件(例如,查找谁传递了一个特定的可传递依赖关系),您可以这样指定:
mvn dependency:tree -Dincludes=com.my.group.id:my-artefact-id:jar:1.0.1 -Dverbose
(您显然需要根据您的需求调整产品、 Package 类型和版本)

lawou6xi

lawou6xi2#

在Eclipse中打开pom.xml并转到Dependency Hierarchy选项卡

6ovsh4lw

6ovsh4lw3#

![在此输入图像说明][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。

相关问题