【发布时间】:2014-07-04 18:17:52
【问题描述】:
当我为我的项目运行“mvn dependency:tree”时,它显示以下内容:
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ xxxxx ---
[INFO] com.xxx.xxx:xxxxx:war:3.1.0-SNAPSHOT
...
[INFO] +- commons-configuration:commons-configuration:jar:1.5:compile
[INFO] | \- commons-beanutils:commons-beanutils-core:jar:1.7.0:compile
[INFO] +- org.seleniumhq.selenium:selenium-api:jar:2.34.0:test
[INFO] | +- com.google.guava:guava:jar:14.0:test
[INFO] | \- org.json:json:jar:20080701:test
[INFO] +- org.seleniumhq.selenium:selenium-htmlunit-driver:jar:2.34.0:test
[INFO] | +- org.seleniumhq.selenium:selenium-remote-driver:jar:2.34.0:test
[INFO] | | +- cglib:cglib-nodep:jar:2.1_3:test
[INFO] | | +- net.java.dev.jna:jna:jar:3.4.0:test
[INFO] | | \- net.java.dev.jna:platform:jar:3.4.0:test
[INFO] | \- net.sourceforge.htmlunit:htmlunit:jar:2.12:test
[INFO] | +- org.apache.commons:commons-lang3:jar:3.1:test
[INFO] | +- org.apache.httpcomponents:httpmime:jar:4.2.3:test
[INFO] | +- net.sourceforge.htmlunit:htmlunit-core-js:jar:2.12:test
[INFO] | +- xerces:xercesImpl:jar:2.10.0:test
>>>[INFO] | | \- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] | +- net.sourceforge.nekohtml:nekohtml:jar:1.9.18:test
[INFO] | +- net.sourceforge.cssparser:cssparser:jar:0.9.9:test
[INFO] | | \- org.w3c.css:sac:jar:1.3:test
[INFO] | \- org.eclipse.jetty:jetty-websocket:jar:8.1.9.v20130131:test
[INFO] +- org.seleniumhq.selenium:selenium-firefox-driver:jar:2.34.0:test
...
正如您在标记行上看到的,xml-apis 具有“编译”范围,因此它被打包到 .war 文件中。为什么会发生?
更有趣的是,它仅在使用 Java5 时发生,对于 Java6,依赖项显示为“测试”。
Maven 版本:3.0.4
【问题讨论】:
-
xml-api不是作为另一个依赖项出现在其他地方吗? -
测试依赖永远不会被打包到战争中,除非你做了一些奇怪的事情。请出示你的 pom 文件。
-
@khmarbaise 我知道,但出于某种原因,我拥有它! pom 文件很大,有几个父 pom... 我没有尝试提取最小的代码示例,相当乏味,但是
selenium-htmlunit-driver依赖项绝对没有什么特别之处,像往常一样声明。 -
非常有趣:如果我使用
mvn dependency:tree,它会将dep 显示为compile,但如果我使用mvn -Dverbose dependency:tree,则dep 将变为test。我现在很确定这是 Maven 中某个地方的错误。作为一种解决方法,我在我的 pom 中明确声明了xml-apis依赖项,现在看来它可以工作了。 -
@SergeBallesta 它没有在我的任何 poms 中声明。当我在
selenium-htmlunit-driver的排除列表中添加 dep 时,它消失了。据我了解,这意味着它不依赖于其他任何东西。