2013-02-22 95 views
5

我有一个Maven项目取决于其他Maven项目。我在我的项目中使用Spring 3.1.1,相关项目有3.0.6。我试图在部署时排除Spring 3.0.6,因为两者都不可行。我在POM中添加了一个明确的排除项,但由于某种原因,当我启动Tomcat服务器时,仍然在WEB-INF/lib文件夹中看到旧版本的弹簧核心罐。有人能指出我出错的地方吗?这里是我的pom.xmlMaven依赖排除似乎不工作

<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> 
+0

您确定已将其从依赖于它的所有依赖项中排除吗? – Lucas 2013-02-22 17:58:19

+0

是的,我做到了。我已经疯了。 – sri 2013-02-22 18:05:52

+0

如果你运行'mvn dependency:tree',你的输出是什么? – Lucas 2013-02-22 18:13:32

回答

4

你的依赖型是战争,所以没有解决发生在这里。 Maven将战争内容覆盖在您的项目上。

当战争发布到资源库时,工件将在WEB-INF lib文件夹中包含依赖库。覆盖期间,它不会将lib文件夹与任何静态资源视为不同,除非您以不同方式排除lib文件夹。请检查'overlay'属性here