16

たとえば、依存関係があります。

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.5.6</version>
</dependency>  

たとえば、1 つのクラスを除外できますorg/slf4j/Marker.classか?

4

3 に答える 3

10

シェードプラグインで試してみてください

シェードを使用する理由基本的な使い方の詳細

于 2012-04-10T09:39:38.837 に答える
6

単一のクラスを除外することはできません。タグ内で<dependency>定義できます<exclusions/>。ただし、これらは依存関係全体を対象としています。

シェード プラグインは慎重に取り扱う必要があります。一般に、すべての依存関係を含む jar を 1 か所に作成することはお勧めできません。生成されたアーティファクトを別のプロジェクトで依存関係として使用する場合に問題が発生する傾向があるためです。たとえば、jar で slf4j をシェーディングしてから、別の slf4j がある別のプロジェクトのアーティファクトに依存すると、悲しみが生じます。

于 2012-04-11T08:19:52.013 に答える
2

これらのクラスを変更して、除外するクラスが存在する依存関係を提供する jar (Marker.class) の前に、依存関係として含める必要がある別の jar/module でそれらを定義することができます。

Maven は、バージョン 2.0.9 からのクラスパスの順序を記憶しています。

于 2012-05-14T14:24:12.493 に答える