ग्रैड बिल्डडिपेंड निर्भरताएँ


176

buildScriptग्रेडेल के निर्माण में या बिल्ड के रूट स्तर में रिपॉजिटरी घोषित करने में क्या अंतर है ।

विकल्प 1:

build.gradle :

buildScript {
    repositories {
        mavenCentral();
    }
}

या

build.gradle :

repositories {
    mavenCentral();
}

जवाबों:


165

बिल्डस्क्रिप्ट ब्लॉक में रिपॉजिटरी का उपयोग आपके बिल्डस्क्रिप्ट निर्भरता की निर्भरता लाने के लिए किया जाता है। ये वे निर्भरताएँ हैं जो आपके बिल्ड के वर्गपथ पर डाली जाती हैं और जिन्हें आप अपनी बिल्ड फ़ाइल से संदर्भित कर सकते हैं। उदाहरण के लिए अतिरिक्त प्लगइन्स जो इंटरनेट पर मौजूद हैं।

रूट स्तर पर रिपॉजिटरी का उपयोग उन निर्भरताओं को प्राप्त करने के लिए किया जाता है जो आपकी परियोजना पर निर्भर करती हैं। इसलिए सभी आश्रितों को आपको अपनी परियोजना को संकलित करने की आवश्यकता है।


19
अगर मुझे अपनी बिल्डस्क्रिप्ट और प्रोजेक्ट दोनों के लिए मावेन केंद्रीय की आवश्यकता है, तो क्या मुझे इसे दो बार घोषित करने की आवश्यकता है?
Marcin Kozi Marski

18
हां, आपको इसे दो बार निर्दिष्ट करने की आवश्यकता है।
हायरी नोमस

इसके एक उदाहरण के रूप में, स्प्रिंग प्रोपडेप्स प्लगइन को सामान्य रूप से "संकलन" और "टेस्टकंपाइल" कीवर्ड के अलावा निर्भरता के लिए "प्रदान" और "वैकल्पिक" कीवर्ड को सक्षम करने के लिए बिल्डड्राफ्ट में जोड़ा जा सकता है। नोट: युद्ध प्लगइन पहले से ही "प्रदान किया गया" कीवर्ड प्रदान करता है, आपको बस जार परियोजनाओं के लिए प्रोपडेप्स की आवश्यकता होती है जो एक युद्ध के अंदर तैनात किए जाएंगे।
पॉवरलॉर्ड

14

मैं आपको स्पष्ट गर्भाधान देना चाहता हूं। इस कारण से, मैं बेहतर समझ के लिए बिल्ड.ग्रेड स्नैपशॉट कोड संलग्न कर रहा हूं ।

बिल्डडाइप निर्भरताएँ:

buildscript {
    repositories {
        maven { url("https://plugins.gradle.org/m2/") }
    }

    dependencies {
        classpath 'net.saliman:gradle-cobertura-plugin:2.3.2'
        classpath 'com.netflix.nebula:gradle-lint-plugin:latest.release'
    }
}

जड़ स्तर / कोर निर्भरता:

repositories{
    mavenLocal()
    maven { url("https://plugins.gradle.org/m2/") }
    maven { url "https://repo.spring.io/snapshot" }
}

dependencies {
        //Groovy
        compile group: 'org.codehaus.groovy', name: 'groovy-all', version: '2.3.10'

        //Spock Test
        compile group: 'org.spockframework', name: 'spock-core', version: '1.0-groovy-2.3'

        //Test
        testCompile group: 'junit', name: 'junit', version: '4.10'
        testCompile group: 'org.testng', name: 'testng', version: '6.8.5'
}

इसलिए, पहले मैं एक शब्द में स्पष्ट करना चाहता हूं कि

i) बिल्डडस्क्रिप्ट निर्भरता जार फ़ाइल बिल्डस्क्रिप्ट रिपॉजिटरी से डाउनलोड की जाएगी। [परियोजना बाहरी निर्भरता]

ii) रूट लेवल डिपेंडेंसीज जार फाइल को रूट लेवल रिपॉजिटरी से डाउनलोड किया जाएगा। [परियोजना निर्भरता के लिए]

यहाँ,

"बिल्डडस्क्रिप्ट" ब्लॉक केवल बिल्ड कोड प्रक्रिया के लिए निर्भरता को नियंत्रित करता है, एप्लिकेशन कोड के लिए नहीं। जैसे विभिन्न ग्रेडिंग प्लगइन gradle-cobertura-plugin, gradle-lint-pluginबिल्डडस्क्रिप्ट रेपो से पाए जाते हैं। उन प्लगइन्स को अनुप्रयोग कोड के लिए निर्भरता के रूप में संदर्भित नहीं किया जाएगा।

लेकिन परियोजना संकलन और परीक्षण चलाने के लिए जार फाइलें जैसे groovy all jar, junit and testng jarरूट स्तर के रिपॉजिटरी से मिलेंगे।

और एक और बात , maven { url("https://plugins.gradle.org/m2/") }भाग का उपयोग दोनों ब्लॉकों में किया जा सकता है। क्योंकि उनका उपयोग विभिन्न निर्भरताओं के लिए किया जाता है।

संसाधन लिंक: बिल्डडस्क्रिप्ट बंद और कोर के भीतर निर्भरता के बीच अंतर


12

बिल्ड स्क्रिप्ट (यानी build.gradle) बिल्ड स्क्रिप्ट के निष्पादन के लिए कुछ निर्भरता हो सकती है। आप बिल्डस्क्रिप्ट ब्लॉक के भीतर उन निर्भरता को शामिल करेंगे। बेसिक्स से परे ग्रैडल के अध्याय 4 में इसका विस्तार से वर्णन किया गया है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.