Maven依赖排除不';好像不行

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> &

我有一个Maven项目,它依赖于另外两个Maven项目。我在我的项目中使用Spring3.1.1,相关项目使用3.0.6。我试图在部署时排除Spring3.0.6,因为两者都不可能。为此,我在POM中添加了一个明确的排除项,但出于某种原因,在启动Tomcat服务器时,我仍然在
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?