स्नातक - निर्भरता प्रबंधन

ग्रैड बिल्ड स्क्रिप्ट प्रोजेक्ट बनाने की प्रक्रिया को परिभाषित करता है; प्रत्येक परियोजना में कुछ निर्भरताएँ और कुछ प्रकाशन होते हैं। निर्भरता का मतलब उन चीजों से है जो आपके प्रोजेक्ट को बनाने के लिए समर्थन करती हैं जैसे अन्य प्रोजेक्ट्स से जरूरी JAR फाइल और क्लास पाथ में JDBC JAR या एह-कैश JAR जैसी एक्सटर्नल JARs। प्रकाशन का अर्थ है परियोजना के परिणाम, जैसे परीक्षण श्रेणी की फाइलें और युद्ध फ़ाइलों की तरह फाइलें बनाना।

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

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

अपनी निर्भरता की घोषणा

निर्भरता कॉन्फ़िगरेशन कुछ भी नहीं है लेकिन निर्भरता के सेट को परिभाषित करता है। आप इस सुविधा का उपयोग बाहरी निर्भरता को घोषित करने के लिए कर सकते हैं जिसका अर्थ है कि आप वेब से डाउनलोड करना चाहते हैं। यह विभिन्न स्टैंडर्स को इस प्रकार परिभाषित करता है।

apply plugin: 'java'

repositories {
   mavenCentral()
}

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
   testCompile group: 'junit', name: 'junit', version: '4.+'
}

निर्भरता विन्यास

निर्भरता कॉन्फ़िगरेशन कुछ भी नहीं है लेकिन निर्भरता के एक सेट को परिभाषित करता है। आप इस सुविधा का उपयोग बाहरी निर्भरता को घोषित करने के लिए कर सकते हैं, जिसे आप वेब से डाउनलोड करना चाहते हैं। यह निम्नलिखित विभिन्न मानक विन्यासों को परिभाषित करता है।

  • Compile - परियोजना के उत्पादन स्रोत को संकलित करने के लिए आवश्यक निर्भरताएँ।

  • Runtime- रनटाइम के दौरान उत्पादन वर्गों द्वारा आवश्यक निर्भरताएं। डिफ़ॉल्ट रूप से, संकलन समय निर्भरता भी शामिल है।

  • Test Compile- परियोजना के परीक्षण स्रोत को संकलित करने के लिए आवश्यक निर्भरताएँ। डिफ़ॉल्ट रूप से, इसमें संकलित उत्पादन कक्षाएं और संकलन समय निर्भरताएं शामिल हैं।

  • Test Runtime- परीक्षण चलाने के लिए आवश्यक निर्भरताएँ। डिफ़ॉल्ट रूप से, इसमें रनटाइम और परीक्षण संकलन निर्भरताएं शामिल हैं।

बाहरी निर्भरता

बाहरी निर्भरताएं निर्भरता के प्रकार में से एक हैं। यह वर्तमान बिल्ड पर निर्मित कुछ फ़ाइलों पर निर्भरता है, और कुछ प्रकार के भंडार में संग्रहीत किया जाता है, जैसे कि मावेन सेंट्रल, या एक कॉर्पोरेट मावेन या लेवी रिपॉजिटरी, या एक निर्देशिका मैं स्थानीय फ़ाइल सिस्टम।

निम्नलिखित कोड स्निपेट बाहरी निर्भरता को परिभाषित करने के लिए है। इस कोड का उपयोग करेंbuild.gradle फ़ाइल।

dependencies {
   compile group: 'org.hibernate', name: 'hibernate-core', version: '3.6.7.Final'
}

एक बाहरी निर्भरता बाहरी निर्भरता घोषित कर रही है और शॉर्टकट रूप "समूह: नाम: संस्करण" जैसा दिखता है।

डेटा संग्रह स्थान

बाहरी निर्भरता जोड़ते समय। ग्रेडल उनके लिए एक भंडार में दिखता है। एक रिपॉजिटरी केवल फाइलों का एक संग्रह है, जो समूह, नाम और संस्करण द्वारा आयोजित किया जाता है। डिफ़ॉल्ट रूप से, ग्रैडल किसी भी रिपोजिटरी को परिभाषित नहीं करता है। हमें कम से कम एक रिपॉजिटरी को स्पष्ट रूप से परिभाषित करना होगा। निम्नलिखित कोड स्निपेट परिभाषित करता है कि मावेन रिपॉजिटरी को कैसे परिभाषित किया जाए। इस कोड का उपयोग करेंbuild.gradle फ़ाइल।

repositories {
   mavenCentral()
}

निम्नलिखित कोड दूरस्थ मावेन को परिभाषित करना है। इस कोड का उपयोग करेंbuild.gradle फ़ाइल।

repositories {
   maven {
      url "http://repo.mycompany.com/maven2"
   }
}

प्रकाशन कलाकृतियों

फ़ाइलों को प्रकाशित करने के लिए निर्भरता कॉन्फ़िगरेशन का भी उपयोग किया जाता है। इन प्रकाशित फाइलों को कलाकृतियां कहा जाता है। आमतौर पर, हम कलाकृतियों को परिभाषित करने के लिए प्लग-इन का उपयोग करते हैं। हालांकि, आपको ग्रैडल को कलाकृतियों को प्रकाशित करने के लिए बताने की आवश्यकता है। आप अपलोड अभिलेखागार कार्य में रिपॉजिटरी संलग्न करके इसे प्राप्त कर सकते हैं। मावेन भंडार को प्रकाशित करने के लिए निम्नलिखित वाक्यविन्यास पर एक नज़र डालें। निष्पादित करते समय, ग्रैडल परियोजना आवश्यकताओं के अनुसार एक पोम.एक्सएमएल उत्पन्न और अपलोड करेगा। इस कोड का उपयोग करेंbuild.gradle फ़ाइल।

apply plugin: 'maven'

uploadArchives {
   repositories {
      mavenDeployer {
         repository(url: "file://localhost/tmp/myRepo/")
      }
   }
}