Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 2 war包中不包括可传递依赖项_Maven 2_Maven 3 - Fatal编程技术网

Maven 2 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

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] |  +- 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中明确列出了依赖项。当我尝试较小的项目时,我无法重现这个问题。