2012-07-23 78 views
1

战争项目依赖于com.mycompany:somejarname:1.0。它依赖于slf4j-log4j12(这只在运行时才需要该jar)。不包含在战争包中的传递依赖

打包的战争不包括slf4j-log4j12-我的理解是,它应该包括在内,因为传递依赖:war - > somejarname - > slf4j-log4j12。依赖关系树确实显示依赖关系,但它不包含在最终的war包中。

[INFO] +- com.mycompany:somejarname:jar:1.0:compile 
[INFO] | +- common-crypt:common-crypt:jar:1.0:compile 
[INFO] | +- org.apache.axis2:axis2-spring:jar:1.5.1:compile 
[INFO] | +- org.objenesis:objenesis:jar:1.1:compile 
[INFO] | +- org.mockito:mockito-all:jar:1.9.0:compile 
[INFO] | +- org.slf4j:slf4j-log4j12:jar:1.5.6:compile 
[INFO] | \- net.sf.json-lib:json-lib:jar:jdk15:2.4:compile 
[INFO] |  \- net.sf.ezmorph:ezmorph:jar:1.0.6:compile 

有什么建议吗?使用Maven 3

更新:这适用于Maven 2.2.1,但不适用于Maven 3.0.4。 Maven 3中的Dependency resolution从2.2.1更改。

UPDATE:Maven中3 dependency tree功能是相同的Maven 2.2.1所以上面的树显示SLF4J-log4j12。

此外,并非Maven 2.x解析API的所有部分都可以桥接到Aether上。最值得注意的是用于mvn依赖性的maven-dependency-tree共享组件:树仍然使用传统分辨率代码。这样,从MVN依赖性输出:树可以从使用的Maven本身以导出一个项目的类路径的实际的依赖关系树不同(见MSHARED-167这样的差异的一例)

+0

没有pom文件很难猜测出了什么问题? – khmarbaise 2012-07-23 14:09:04

+0

pom包含很多组件 - 我会尝试在较小的项目上重现它,然后发布POM – dsatish 2012-07-24 17:55:19

+0

您是否解决了问题?如果是这样,请将解决方案作为答案。 – khmarbaise 2012-07-30 10:41:21

回答

0

实测值相同的从Eclipse Mars(m2e插件)使用Maven 3.2.5问题。

通过使用Maven 3.3.3解决此问题(需要Java 7或8),默认情况下与Eclipse Mars打包。