2017-02-20 148 views
0

我正在使用spring-boot,並且希望在我的項目中包含兩個不同版本的spring-web,因爲最新版本中的一個API已被棄用。爲了繼續使用它,我已經包含了spring-web的兩個不同版本的依賴關係,但eclipse只識別它們。不同版本的多個彈簧依賴關係

我已經試過排除幾乎所有的舊版本的春季網,但似乎不工作任何方式 - 請任何方式嗎?

<dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-web</artifactId> 
     <version>3.0.2.RELEASE</version> 
     <exclusions> 
      <exclusion> 
       <groupId>aopalliance</groupId> 
       <artifactId>aopalliance</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>axis</groupId> 
       <artifactId>axis</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.caucho</groupId> 
       <artifactId>com.springsource.com.caucho</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>commons-fileupload</groupId> 
       <artifactId>commons-fileupload</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.el</groupId> 
       <artifactId>el-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.faces</groupId> 
       <artifactId>jsf-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.xml</groupId> 
       <artifactId>jaxrpc-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.xml.ws</groupId> 
       <artifactId>jaxws-api</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>log4j</groupId> 
       <artifactId>log4j</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.codehaus.jackson</groupId> 
       <artifactId>jackson-mapper-asl</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-aop</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-beans</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-context</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-core</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>org.springframework</groupId> 
       <artifactId>spring-oxm</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.portlet</groupId> 
       <artifactId>portlet-api</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
+1

您不能依賴於相同依賴項的多個版本。那沒有意義。你怎麼知道哪一個必須被使用? – Tome

回答

0

你將不能夠有兩個不同版本的依賴在你的,因爲一個Maven概念的項目被稱爲「d ependency調解」。看看Maven Introduction to the Dependency Mechanism文檔。

依賴關係調解 - 這決定了在遇到多個版本的工件時將使用哪個版本的依賴關係 。 目前,Maven 2.0僅支持使用「最接近定義」 ,這意味着它將使用與依賴關係樹中項目最接近的版本 。您可以始終通過在項目的POM中明確聲明 版本來保證。請注意,如果 兩個依賴項版本在依賴關係樹中處於相同深度 ,直到Maven 2.0.8未定義哪一個會獲勝,但自從 Maven 2.0.9它是聲明中的順序:第一個 宣告勝利。

+0

謝謝@FrVaBe。 – Bhaskar