私のgradleプロジェクトはapplication
プラグインを使用してjarファイルを作成しています。実行時の推移的な依存関係の一部として、結局はを取得しorg.slf4j:slf4j-log4j12
ます。(それは少なくとも5または6の他の推移的な依存関係のサブ推移的な依存関係として参照されます-このプロジェクトは春と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を使用しています。