Gradle での推移的な依存関係の除外
Gradle では、アプリケーション プラグインを使用して jar ファイルを生成するときに、次のような推移的な依存関係が発生する可能性があります。除外したい場合があります。これを実現するには、exclude メソッドを使用できます。
Exclude のデフォルト動作
最初に、org.slf4j:slf4j- のすべてのインスタンスを除外しようとしました。次のコードを使用して log4j12 を実行します:
configurations { runtime.exclude group: "org.slf4j", name: "slf4j-log4j12" }
ただし、これにより、slf4j-api を含む すべて の org.slf4j アーティファクトが除外されます。
カスタマイズ除外
除外を調整するには、グループとモジュールのプロパティを利用できます。
configurations { runtime.exclude group: "org.slf4j", module: "slf4j-log4j12" }
このアプローチでは、他の slf4j に影響を与えることなく org.slf4j:slf4j-log4j12 のみを正常に除外します。
個々の依存関係から除外する
特定の依存関係を除外する場合は、次の構文を使用できます:
dependencies { compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') { exclude group: "org.slf4j", module: "slf4j-log4j12" } }
Exclude メソッドの制限
Exclusions では任意のプロパティを指定できますが、個々の依存関係から除外する場合は許可されないことに注意することが重要です。たとえば、次のコードは失敗します:
dependencies { compile ('org.springframework.data:spring-data-hadoop-core:2.0.0.M4-hadoop22') { exclude group: "org.slf4j", name: "slf4j-log4j12" } }
次のエラー メッセージが表示されます:
No such property: name for class: org.gradle.api.internal.artifacts.DefaultExcludeRule
Gradle モジュールについて
In Gradle 、モジュール プロパティは Maven artifactId に対応します。したがって、特定の Maven アーティファクトのモジュールを判断するには、その artifactId を調べます。たとえば、Maven アーティファクト org.slf4j:slf4j-log4j12 には、slf4j-log4j12 の Gradle モジュールがあります。
以上がGradle で特定の推移的な依存関係を除外する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。