2016-12-25 9 views
0

TL; DRMavenで過渡的な依存関係のオーバーライドを止めるには?

私は依存関係管理の問題があります。私は私の問題の説明を簡略化したいと思いますので、私はNoClassDefFoundErrorがの完全なスタックトレースを投稿するつもりはありません.. VeryImportantStuffとなど

は簡単に言えば、私は2つの依存関係を使用します。A-1.1B-を1.0私のプロジェクトCAまたはBのいずれかの別のバージョンを使用することはできません。 B-1.0は、A-1.0に依存する。 の著者は、下位互換性の規則を遵守しておらず、Aライブラリの最新バージョン(1.1)は単にクラスVeryImportantStuff.classを持たないだけです。

<dependency> 
    <groupId>org.thirdparty.lib</groupId> 
    <artifactId>A</artifactId> 
    <version>1.1</version> <!-- overrides B->A version !!! (((--> 
    <scope>test</scope> 
</dependency> 

<dependency> 
    <groupId>org.another.thirdparty.lib</groupId> 
    <artifactId>B</artifactId> 
    <version>1.0</version> 
    <scope>test</scope> 
    <!-- 
    <dependencyManagement> 
     <dearMavenIbegYouPleaseUseThisDependency> 

      <dependency> 
       <groupId>org.thirdparty.lib</groupId> 
       <artifactId>A</artifactId> 
       <version>1.0</version> PLEASE!!! 
      </dependency> 

     </dearMavenIbegYouPleaseUseThisDependency> 
    </dependencyManagement> 
    --> 
</dependency> 

質問それがで指定されている1.1、Aのバージョン1.0を使用する必要があることではないB(または何私は私のpom.xmlに追加することができます)を伝える方法

pom.xmlは私のアプリケーションコードがA-1.1を使用するべきであることを考慮に入れていますか?

+0

* ... B-1.0-1.0に依存する場合*その後、B-1.0は、Aの1.0のみ、プロジェクトは1.0がちょうどBの中で 'を'使用されないことを保証するために、を使用して構築され依存関係 – nullpointer

+0

B-1.0を実行すると、実行時に必要なA-1.0のクラスを見つけることができません。実行時には、A-1.1クラスがあります。 – ieXcept

+0

あなたはどういう意味ですか?* B-1.0が動作しているとき*?それを依存関係として宣言するときは、それ自体のpom.xmlに記載されている依存関係を使用して既に構築されているものとします。 – nullpointer

答えて

0

除外を依存関係Bに追加するだけで、Aは不要であることを伝えてください。次に、依存関係としてバージョン1.1のAを追加します。

<dependency> 
    <groupId>org.another.thirdparty.lib</groupId> 
    <artifactId>B</artifactId> 
    <version>1.0</version> 
    <scope>test</scope> 
    <exclusions> 
     <exclusion> 
      <groupId>org.thirdparty.lib</groupId> 
      <artifactId>A</artifactId>   
     </exclusion> 
    </exclusions> 
</dependency> 
+0

成功しません。ランタイムBでは、まだA – ieXcept

+0

の1.1を使用しています。したがって、単一のJVMにバージョン1.0と1.1の両方のAが必要ですか?はいの場合は不可能です。実行時に同じクラスの2つのバージョンが必要な場合は、あなたが持っているのはosgiだけです。 – ares

関連する問題