2017-02-20 14 views
0

私はspring-bootで作業しており、最新のバージョンのAPIの1つが推奨されていないため、2つの異なるバージョンのspring-webをプロジェクトに含める必要があります。それを継続して使用するために、私はspring-webの2つの依存関係を別々のバージョンに含めましたが、Eclipseはそれらを認識しています。異なるバージョンの複数のバネ依存関係

古いバージョンのspring-webからほぼすべてを除外しようとしましたが、どちらもうまくいきませんでしたか?

<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

あなたは「ependency調停 D」と呼ばれる理由はMavenのコンセプトのプロジェクトで依存関係の2つの異なるバージョンを持ってすることはできません。 Maven Introduction to the Dependency Mechanismのドキュメントをご覧ください。

従属メディエーション - 複数のバージョンのアーティファクトが発生した場合に、どのバージョンの依存関係が使用されるかを決定します。 現在、Maven 2.0は「最も近い定義」 をサポートしています。つまり、依存関係のツリー内のプロジェクト に最も近い依存関係のバージョンを使用します。プロジェクトのPOMで明示的に宣言することにより、いつでも バージョンを保証することができます。 2つの依存バージョンが依存関係ツリーの同じ深さにある場合、 まではMaven 2.0.8まではどちらが勝つかは定義されていませんでしたが、 Maven 2.0.9以降は、 宣言が勝ちます。

+0

ありがとう@FrVaBe。 – Bhaskar

関連する問題