「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > Gradle で特定の推移的な依存関係を除外する方法は?

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

2024 年 11 月 6 日に公開
ブラウズ:695

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 のみを正常に除外します。

個々の依存関係から除外する

If特定の依存関係に対して除外が必要な場合は、次の構文を使用できます。使用:

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 モジュールについて

Gradle では、モジュール プロパティは Maven artifactId に対応します。したがって、特定の Maven アーティファクトのモジュールを判断するには、その artifactId を調べます。たとえば、Maven アーティファクト org.slf4j:slf4j-log4j12 には、slf4j-log4j12.

の Gradle モジュールがあります。
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3