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>
あなたは ' を使用して試みることができますグループC:アーティファクト-C:*:4.0.0 グループC:アーティファクト-C:* artifactSet> 'Mavenのシェード構成内3.0.0 。 –
nullpointer
これは可能だとは思わない。通常、Mavenは依存関係の1つを無視します(依存関係を分析するときは、 "x.y.zのバージョンでは省略されました"と表示されます)。異なるクラスローダーを使用して依存関係を完全に分離しない限り、同じクラスを含む2つの異なる依存関係を使用することはできません。 – john16384
@nullpointerありがとうございますが、 "a"と "b"には "c"の異なるバージョンが必要なので、これらのバージョンの "c"を除外することはできません。 –