0

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

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

为什么行为会有所不同,我该如何阻止所有这些额外的依赖项进入?

我试过按照这里的建议,但没有发现行为有什么不同: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 install 给了我想要的结果。mvn clean 然后 mvn install 添加了我不想要的额外罐子。

4

1 回答 1

2

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

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

请务必想办法升级到 maven 2.1.0(最好是 2.2.1),以及最新版本的插件,早期版本臭名昭著。

于 2010-11-10T09:50:41.687 回答