Gradle で特定の推移的な依存関係を除外する方法は?

Susan Sarandon
リリース: 2024-10-26 10:44:03
オリジナル
659 人が閲覧しました

How to Exclude Specific Transitive Dependencies in Gradle?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!