如果不是独立构建的话,Maven war包含额外的依赖项

时间:2010-11-10 09:44:12

标签: java dependencies maven war ear

我有一场战争,我正试图减少它的WEB-INF / lib中包含的依赖关系,因为它们是由耳朵提供的,如果它们只是在耳朵里它解决了一些类加载器问题我'我有。

如果我在战争模块中运行mvn clean install,它只构建我想要的依赖项。如果我上升一个级别并在项目上运行mvn install(war在此级别定义为pom.xml中的模块),那么将使用 lot 更多依赖项重新打包war。

为什么行为会有所不同?如何阻止所有这些额外的依赖关系进入?

我尝试过遵循这里的建议,但没有看到行为上的差异:http://maven.apache.org/plugins/maven-war-plugin/examples/skinny-wars.html

Maven 2.0.6,maven-ear-plugin 2.4.1,maven-war-plugin 2.1-beta-1(我无法更改版本,我在一个封闭的网络上)。提前谢谢。

ETA:项目级别的mvn clean安装程序为我提供了我想要的结果。 mvn clean然后是mvn install会添加我不想要的额外罐子。

1 个答案:

答案 0 :(得分:2)

运行mvn dependency:tree以查看(可能是传递的)依赖项的来源。

您需要阅读“Maven the Definitive Guide”(Sonatype免费PDF),以便深入了解Maven如何处理依赖关系管理。

并且确实找到了升级到maven 2.1.0(最好是2.2.1)的方法,并且最新版本的插件,早期版本都是出了名的错误。