2015-11-24 11 views
6

मैं एक कस्टम Gradle प्लगइन है और इस तरह मेरे प्लगइन परियोजना देखने के लिए निर्भरता को विकसित कर रहा हूँ:Gradle कस्टम प्लगइन: gradleApi() बनाम स्पष्ट निर्भरता

dependencies { 
    compile gradleApi() 
    compile localGroovy() 
    compile('com.xxx.oozie:oozie-dsl-parser:1.0.127') { 
    exclude module: 'groovy-all' 
    } 

    testCompile('org.spockframework:spock-core:1.0-groovy-2.3') { 
    exclude module: 'groovy-all' 
    } 
} 

हालांकि, प्रतिलिपि प्रस्तुत करने योग्य के हित में बनाता है, मैं मैं सोच रहा हूं कि localGroovy() और gradleApi() का उपयोग करने की सलाह दी जाती है।

बहुत गुस्से के बाद, हालांकि मैं localGroovy() को ग्रोवी के एक विशिष्ट संस्करण के साथ प्रतिस्थापित कर सकता हूं, मुझे लगता है कि मैं gradleApi() को प्रतिस्थापित करने के बारे में एक निश्चित उत्तर नहीं ढूंढ सकता।

क्या आपके पास कोई सुझाव है?

धन्यवाद!

+1

संपादित करने के लिए धन्यवाद @ ओपल। –

+0

क्या आप अभी भी एक उत्तर खोज रहे हैं? – tomasulo

+0

हाँ कृपया !!!!! –

उत्तर

0

मैं java-gradle-plugin लागू करने का सुझाव देता हूं। यह gradleApi() निर्भरता स्वचालित रूप से कहते हैं और यह कुछ अन्य बॉयलरप्लेट विन्यास में शामिल हैं: https://docs.gradle.org/current/userguide/javaGradle_plugin.html#gsc.tab=0

gradleApi() कि निर्भरता के रूप में जोड़ा जाता है के संस्करण Gradle संस्करण है कि आप का निर्माण परियोजना का उपयोग कर रहे पर निर्भर करता है। उदाहरण के लिए यदि आपके रैपर में ग्रैडल 2.14.1 है तो प्रयुक्त ग्रैडल एपीआई उस संस्करण का होगा।

तुम भी है क्योंकि यह पहले से ही gradleTestKit() निर्भरता जो प्लगइन द्वारा जोड़ा जाता है में शामिल है localGroovy() बारे में चिंता करने की जरूरत नहीं है: https://docs.gradle.org/current/userguide/test_kit.html#sub:test-kit-automatic-classpath-injection&gsc.tab=0

यहाँ एक उदाहरण है:

apply plugin: 'groovy' 
apply plugin: 'java-gradle-plugin' 

dependencies { 
    testCompile('org.spockframework:spock-core:1.0-groovy-2.4') { 
     exclude module: 'groovy-all' 
    } 
} 
संबंधित मुद्दे