Gradle projem, application
bir jar dosyası oluşturmak için eklentiyi kullanıyor . Çalışma zamanı geçişli bağımlılıklarının bir parçası olarak, içeri girmeye başladım org.slf4j:slf4j-log4j12
. (En az 5 veya 6 diğer geçişli bağımlılıkta alt geçişli bağımlılık olarak anılır - bu proje yay ve hadoop kullanıyor, bu nedenle mutfak lavabosu dışındaki her şey içeri çekiliyor ... bekle ... bu da var :) ).
slf4j-log4j12
Kavanozu yapılı kavanozumdan küresel olarak çıkarmak istiyorum . Ben de bunu denedim:
configurations {
runtime.exclude group: "org.slf4j", name: "slf4j-log4j12"
}
Ancak, bu, dahil tüm org.slf4j
eserleri hariç tutuyor gibi görünüyor slf4j-api
. Hata ayıklama modunda çalışırken aşağıdaki gibi satırlar görüyorum:
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).
Her slf4j-log4j12
geçişli bağımlılığın kaynağına bakmak ve ardından bloğumda ayrı compile foo { exclude slf4j... }
ifadeler kullanmak istemiyorum dependencies
.
Güncelleme:
Bunu da denedim:
configurations {
runtime.exclude name: "slf4j-log4j12"
}
Bu, yapıdaki her şeyi hariç tutar ! Sanki ben belirtmişim gibi group: "*"
.
Güncelleme 2:
Bunun için Gradle 1.10 sürümünü kullanıyorum.