Maven 2 war包中不包括可传递依赖项
war项目依赖于com.mycompany:somejarname:1.0。它依赖于slf4j-log4j12,只有在运行时该jar才需要它 打包的war不包括slf4j-log4j12-我的理解是,应该包括它,因为它具有可传递的依赖关系:war->somejarname->slf4j-log4j12。依赖关系树确实显示了依赖关系,但它不包括在最终的war包中Maven 2 war包中不包括可传递依赖项,maven-2,maven-3,Maven 2,Maven 3,war项目依赖于com.mycompany:somejarname:1.0。它依赖于slf4j-log4j12,只有在运行时该jar才需要它 打包的war不包括slf4j-log4j12-我的理解是,应该包括它,因为它具有可传递的依赖关系:war->somejarname->slf4j-log4j12。依赖关系树确实显示了依赖关系,但它不包括在最终的war包中 [INFO] +- com.mycompany:somejarname:jar:1.0:compile [INFO] | +- com
[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中,更改为2.2.1
更新:Maven 3中的功能与Maven 2.2.1中的功能相同,因此上面的树显示了slf4j-log4j12
此外,并非Maven 2.x分辨率API的所有部分都可以桥接到乙醚上。最值得注意的是,用于mvn dependency:tree的maven dependency tree共享组件仍然使用遗留解析代码。因此,mvn dependency:tree的输出可能不同于Maven本身用于派生项目类路径的实际依赖树。有关这种差异的示例,请参见MSHARED-167
使用EclipseMarsM2E插件中的Maven 3.2.5发现了相同的问题
通过使用Maven 3.3.3解决了这个问题,需要Eclipse Mars默认打包的Java 7或8。如果没有pom文件,很难猜出问题出在哪里?pom包含很多组件-我将尝试在一个较小的项目上复制它,然后发布pom您是否解决了这个问题?如果是,请将解决方案作为答案发布。我已经在我的war项目war->somejarname->slf4j-log4j12中明确列出了依赖项。当我尝试较小的项目时,我无法重现这个问题。