私の 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を使用しています。