Maven依赖排除不';好像不行
我有一个Maven项目,它依赖于另外两个Maven项目。我在我的项目中使用Spring3.1.1,相关项目使用3.0.6。我试图在部署时排除Spring3.0.6,因为两者都不可能。为此,我在POM中添加了一个明确的排除项,但出于某种原因,在启动Tomcat服务器时,我仍然在Maven依赖排除不';好像不行,maven,Maven,我有一个Maven项目,它依赖于另外两个Maven项目。我在我的项目中使用Spring3.1.1,相关项目使用3.0.6。我试图在部署时排除Spring3.0.6,因为两者都不可能。为此,我在POM中添加了一个明确的排除项,但出于某种原因,在启动Tomcat服务器时,我仍然在WEB-INF/lib文件夹中看到旧版本的spring core JAR。有人能指出我哪里出了问题吗。这是我的pom.xml: <project> .... <properties> &
WEB-INF/lib
文件夹中看到旧版本的spring core JAR。有人能指出我哪里出了问题吗。这是我的pom.xml
:
<project>
....
<properties>
<org.springframework-version>3.1.1.RELEASE</org.springframework-version>
</properties>
<dependency>
<groupId>com.test.abc</groupId>
<artifactId>abc</artifactId>
<version>1.0</version>
<type>war</type>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework-version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>3.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${org.springframework-version}</version>
</dependency>
<dependency>
<groupId>org.springframework.ws</groupId>
<artifactId>spring-xml</artifactId>
<version>1.0-m2</version>
</dependency>
....
</project>
....
3.1.1.1发布
com.test.abc
abc
1
战争
org.springframework
弹簧芯
org.springframework
spring上下文
${org.springframework版本}
公用记录
公用记录
org.springframework
弹簧芯
${org.springframework版本}
org.springframework
SpringWebMVC
${org.springframework版本}
org.springframework
弹簧oxm
3.0.4.1发布
org.springframework
弹簧网
${org.springframework版本}
org.springframework.ws
SpringXML
1.0-m2
....
您的依赖项类型是war,因此这里没有解决方案。Maven将war内容覆盖在项目上
当war发布到存储库时,工件将在WEB-INF lib文件夹中包含依赖库。在覆盖期间,它不会将lib文件夹与任何静态资源区别对待,除非您告诉它以不同的方式排除。检查“overlay”属性在我的情况下,我认为我排除了正确的依赖项。使用eclipse,在dependency hierarchy选项卡上,您可以右键单击它,然后单击exclude artifact,它排除了正确的依赖项(它们都有相同的artifactId但不同的groupId)您确定要从依赖它的所有依赖项中排除它吗?是的。我已经对此发疯了。如果运行
mvn dependency:tree
,您的输出是什么?奇怪的是,我的dependency tree输出中没有显示spring 3.0.6 JAR。您想让我发布输出吗?如果dependency:树没有显示它们,那么它们就不会被包括在内。添加排除后是否运行了mvn clean?