আমার গ্রেডেল প্রকল্পটি application
একটি জার ফাইল তৈরি করতে প্লাগইন ব্যবহার করে । রানটাইম ট্রানজিটিভ নির্ভরতার অংশ হিসাবে, আমি ভিতরে টান শেষ করি org.slf4j:slf4j-log4j12
। (এটি কমপক্ষে 5 বা 6 অন্যান্য ট্রান্সজিটিভ নির্ভরতার মধ্যে একটি সাব-ট্রানসিটিভ নির্ভরতা হিসাবে উল্লেখ করা হয় - এই প্রকল্পটি বসন্ত এবং হ্যাডোপ ব্যবহার করছে, তাই রান্নাঘরের ডোবা ছাড়া সমস্ত কিছুই টানছে ... অপেক্ষা নেই ... সেখানেও আছে :) )।
আমি বিশ্বজুড়ে slf4j-log4j12
আমার তৈরি জার থেকে জারটি বাদ দিতে চাই । সুতরাং আমি এটি চেষ্টা করেছি:
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:
আমি এর জন্য গ্রেডল সংস্করণ 1.10 ব্যবহার করছি।