Gradle

2013-11-14 11 views
14

में सभी निर्भरताओं से एक विशिष्ट ट्रांजिटिव निर्भरता को अनदेखा कैसे करें I Gradle में एक विशिष्ट ट्रांजिटिव निर्भरता को कैसे अनदेखा कर सकता हूं?Gradle

उदाहरण के लिए, कई पुस्तकालयों (जैसे वसंत और ... के रूप में) commons-logging पर निर्भर करते हैं, मैं SLF4J (और इसके JCL-ओवर-slf4j पुल) के साथ commons-logging बदलना चाहते हैं।

क्या यह मेरी स्प्रिंग स्क्रिप्ट में एक बार इसका उल्लेख करने का कोई तरीका है, न कि प्रत्येक निर्भरता के लिए जो commons-logging पर निर्भर करता है?

मैं एक स्क्रिप्ट के बारे में सोच रहा था, सभी निर्भरताओं पर जोर दे रहा था और उन सभी पर exclude जोड़ रहा था, क्या कोई बेहतर समाधान है? और यह स्क्रिप्ट कैसा हो?

+0

संकल्प रणनीति प्रयास करें: http://stackoverflow.com/questions/23124509/how-to-exclude-specific-jars-from-web-inf-lib/30393301#30393301 – smilyface

उत्तर

18
configurations { 
    compile.exclude group: 'commons-logging' 
} 
+8

या: ' configurations.all {समूह को बाहर निकालें: 'commons-logging'} '। –

+1

क्या किसी समूह के विशिष्ट संस्करण को बाहर करने का कोई तरीका है? – JayKay

13

एक ही समस्या के साथ यहां आया लेकिन वास्तविक प्रतिस्थापन करने के लिए निम्नलिखित का उपयोग कर समाप्त हो गया। पूर्णता के लिए इसे पोस्ट करना 'खातिर।

configurations.all { 
    resolutionStrategy.eachDependency { 
     if(it.requested.name == 'commons-logging') { 
      it.useTarget 'org.slf4j:jcl-over-slf4j:1.7.7' 
     } 
    } 
} 
+1

आपके उत्तरों के लिए कुडोस और ऐसे कार्यों से निपटने के दौरान ग्रैडल की लालित्य। –

+1

मैं इस बीच जोड़ना चाहता हूं कि इस बीच एक नया ग्रैडल संस्करण समाप्त हो गया है और इसमें मॉड्यूल प्रतिस्थापन है। अभी तक कोशिश नहीं की है, लेकिन ऐसा लगता है जैसे वे एक ही काम कर सकते हैं। – user2543253