【发布时间】:2014-01-19 14:44:06
【问题描述】:
我正在使用 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 插件,但它没有显示任何.jars。
在 Eclipse 中,Java Resources > Libraries > Maven Dependencies 节点也不显示它们。不过,奇怪的是,它显示了我项目的其他传递依赖项。
【问题讨论】:
-
使用 eclipse,你应该尝试编辑 pom.xml 文件。有一个名为“依赖项”的特殊选项卡。从那里,您应该会看到您的父依赖项 + 您可以考虑选择要保留的依赖项版本。
-
@Olivier @Evgeniy
Dependency Hierarchy选项卡确实有一个依赖树。但是我的.jars 不在。 -
发布您的 POM 文件。 Maven 似乎不太可能使用未出现在依赖关系树中的 jar 填充 war 文件
-
@Mark 我更新了问题。
-
我下载了两个 pom 并进行了构建,在我的情况下,这些 jars 没有出现在 WEB-INF/lib 中。所以依赖只能来自 demo-lib。你可以尝试去 demo-web,运行 mvn dependency:tree 并在此处发布完整的依赖树并发布 demo-lib pom,也许某些插件正在复制 jars,有一个完全没有依赖关系的模块 demo-lib 很奇怪。
标签: eclipse spring maven spring-mvc log4j