2017-02-20 86 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