私の gradle プロジェクトでは、applicationプラグインを使用して jar ファイルを作成しています。実行時の推移的な依存関係の一部として、org.slf4j:slf4j-log4j12. (これは、少なくとも 5 つまたは 6 つの他の推移的な依存関係でサブ推移的な依存関係として参照されています。このプロジェクトは、Spring と Hadoop を使用しているため、キッチン シンク以外のすべてが取り込まれています...待ってはいけません...それもそこにあります :) )。
slf4j-log4j12ビルドした jar から jarをグローバルに除外したい。だから私はこれを試しました:
configurations {
runtime.exclude group: "org.slf4j", name: "slf4j-log4j12"
}
ただし、これは を含むすべての org.slf4jアーティファクトを除外しているようslf4j-apiです。デバッグ モードで実行すると、次のような行が表示されます。
org.slf4j#slf4j-api is excluded from com.pivotal.gfxd:gfxd-demo-mapreduce:1.0(runtime).
org.slf4j#slf4j-simple is excluded from com.pivotal.gfxd:gfxd-demo-mapreduce:1.0(runtime).
org.slf4j#slf4j-log4j12 is excluded from org.apache.hadoop:hadoop-common:2.2.0(runtime).
slf4j-log4j12各推移的な依存関係のソースを調べて、ブロックに個々のcompile foo { exclude slf4j... }ステートメントを含める必要はありません。dependencies
アップデート:
私もこれを試しました:
configurations {
runtime.exclude name: "slf4j-log4j12"
}
ビルドからすべてを除外することになります! を指定したかのようにgroup: "*"。
更新 2:
これにはGradleバージョン1.10を使用しています。