Proyek gradle saya menggunakan application
plugin untuk membuat file jar. Sebagai bagian dari dependensi transitif runtime, saya akhirnya berhenti org.slf4j:slf4j-log4j12
. (Ini direferensikan sebagai ketergantungan sub-transitif di setidaknya 5 atau 6 dependensi transitif lainnya - proyek ini menggunakan pegas dan hadoop, jadi semuanya kecuali wastafel dapur ditarik masuk ... tidak tunggu ... itu juga ada :) ).
Saya ingin mengecualikan slf4j-log4j12
toples secara global dari toples buatan saya. Jadi saya sudah mencoba ini:
configurations {
runtime.exclude group: "org.slf4j", name: "slf4j-log4j12"
}
Namun, ini tampaknya mengecualikan semua org.slf4j
artefak termasuk slf4j-api
. Saat menjalankan mode debug saya melihat baris seperti:
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).
Saya tidak ingin mencari sumber dari setiap slf4j-log4j12
ketergantungan transitif dan kemudian memiliki compile foo { exclude slf4j... }
pernyataan individu di dependencies
blok saya .
Memperbarui:
Saya juga mencoba ini:
configurations {
runtime.exclude name: "slf4j-log4j12"
}
Yang akhirnya tidak termasuk semuanya dari build! Seolah-olah saya tentukan group: "*"
.
Perbarui 2:
Saya menggunakan Gradle versi 1.10 untuk ini.