我正在使用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条答案
按热度按时间f0ofjuux1#
如果你只想依赖maven,你可能想仔细看看依赖插件,这里有两个例子:
mvn dependency:tree -Dverbose
将显示更详细的信息-尤其是在某个工件因与另一个工件版本冲突而被忽略的情况下(例如,收敛问题)。它还将显示包含所有可传递依赖项的层次结构。要分析一个特定的工件(例如,查找谁传递了一个特定的可传递依赖关系),您可以这样指定:
mvn dependency:tree -Dincludes=com.my.group.id:my-artefact-id:jar:1.0.1 -Dverbose
个(您显然需要根据您的需求调整产品、 Package 类型和版本)
lawou6xi2#
在Eclipse中打开
pom.xml
并转到Dependency Hierarchy
选项卡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。