2013-02-22 92 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