0

私は2つの依存関係、人物-人工物-12を持っています。それぞれは、アーティファクト-cの別のバージョンに依存します。これらの異なる依存関係を使用するためにアーティファクトをどのようにシェードできますか? (さもないアーティファクト-は通常のものを使用します。Maven Shade Pluginは、過渡的依存関係の複数のバージョンをどのように再配置できますか?

 <dependency> 
      <groupId>group-a</groupId> 
      <artifactId>artifact-a</artifactId> 
      <version>2.1.0</version> 
<!-- artifact-a uses version 3 of artifact-c. 
How do I relocate version 3 without conflicting with version 4? 
       <groupId>group-c</groupId> 
       <artifactId>artifact-c</artifactId> 
       <version>3.0.0</version> 
--> 
     </dependency> 
     <dependency> 
      <groupId>group-b</groupId> 
      <artifactId>artifact-b</artifactId> 
      <version>1.5.0</version> 
<!-- artifact-b uses version 4 of artifact-c. 
How do I relocate version 4 without conflicting with version 3? 
       <groupId>group-c</groupId> 
       <artifactId>artifact-c</artifactId> 
       <version>4.0.0</version> 
--> 
     </dependency> 
+0

あなたは ' を使用して試みることができますグループC:アーティファクト-C:*:4.0.0 グループC:アーティファクト-C:* 'Mavenのシェード構成内3.0.0 。 – nullpointer

+0

これは可能だとは思わない。通常、Mavenは依存関係の1つを無視します(依存関係を分析するときは、 "x.y.zのバージョンでは省略されました"と表示されます)。異なるクラスローダーを使用して依存関係を完全に分離しない限り、同じクラスを含む2つの異なる依存関係を使用することはできません。 – john16384

+0

@nullpointerありがとうございますが、 "a"と "b"には "c"の異なるバージョンが必要なので、これらのバージョンの "c"を除外することはできません。 –

答えて

0

これはおそらく、その唯一の目的日陰artifact-にある新しいMavenのモジュールを作成することによってなさできる影の依存関係とアーティファクト-Bを使用しているととその依存関係(それぞれアーティファクト-B)。そして、メインモジュールは、これら二つの新しいモジュールに依存するであろう。

関連する問題