2012-07-23 119 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打包。