【发布时间】:2014-01-24 23:42:12
【问题描述】:
我有一个战争文件,当我运行mvn package 时,它在 WEB-INF/lib 中获得了 slf4j-jdk14 依赖项,但我无法弄清楚它是如何进入那里的。 CD 进入战争导演并运行mvn dependency:tree -Dverbose。唯一提到 slf4j-jdk14 的行是:
[INFO] +- org.slf4j:slf4j-jdk14:jar:1.6.1:provided
您可以在此处查看完整输出:https://gist.github.com/dankmirth/691b020f4f908f92015f
我可以在 pom.xml 中注释掉这个依赖。当我这样做时,mvn dependency:tree -Dverbose 根本没有提到 slf4j-jdk14。但是,如果我然后运行mvn clean package,那么战争中仍然有这个罐子。
这怎么可能? dependency:tree 是否只显示部分图片?这是一个Maven错误吗?
$ mvn -version
Apache Maven 3.1.1 (0728685237757ffbf44136acec0402957f723d9a; 2013-09-17 08:22:22-0700)
如果我运行help:effective-pom,则只有对 slf4j-jdk14 的引用位于排除它的行中。对我来说,war 插件看起来很标准,这是输出:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.1.1</version>
<executions>
<execution>
<id>default-war</id>
<phase>package</phase>
<goals>
<goal>war</goal>
</goals>
</execution>
</executions>
</plugin>
虽然我很想为此提供一个 pom,但我不能,因为我的公司不允许。我试图在示例项目中重现这一点,但无法做到。我希望那里的一些专家可以指出我调试这个 jar 来自哪里的路径,因为根据我对 maven 的理解,这不应该是可能的。
【问题讨论】:
-
请附上整个依赖:树
-
尝试 3.1。另外,运行 help:effective-pom 看看是否有人在配置对 war 插件没有帮助的东西。
-
@bmargulies 我更新并运行了 help:effective-pom。我没有看到任何效果。
-
@MariuszS 看到我的更新。我把它放在一个要点中