ग्रेडल - मल्टी-प्रोजेक्ट बिल्ड

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

मल्टी-प्रोजेक्ट बिल्ड के लिए संरचना

इस तरह के बिल्ड सभी आकार और आकारों में आते हैं, लेकिन उनकी कुछ सामान्य विशेषताएं हैं -

  • settings.gradle परियोजना के रूट या मास्टर निर्देशिका में फ़ाइल।

  • build.gradle रूट या मास्टर निर्देशिका में फ़ाइल।

  • बाल निर्देशिकाएँ जिनका अपना है *.gradle फ़ाइलों का निर्माण (कुछ मल्टी-प्रोजेक्ट बिल्ड चाइल्ड प्रोजेक्ट बिल्ड स्क्रिप्ट्स को छोड़ सकते हैं)।

बिल्ड फ़ाइल में सभी प्रोजेक्ट्स को सूचीबद्ध करने के लिए, आप निम्न कमांड का उपयोग कर सकते हैं।

C:\> gradle -q projects

आउटपुट:

------------------------------------------------------------
Root project
------------------------------------------------------------

Root project 'projectReports'
+--- Project ':api' - The shared API for the application
\--- Project ':webapp' - The Web application implementation

To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :api:tasks

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

description = 'The shared API for the application'

सामान्य बिल्ड कॉन्फ़िगरेशन निर्दिष्ट करना

में build.gradle रूट_प्रोजेक्ट में फ़ाइल, सामान्य विन्यास सभी परियोजनाओं या सिर्फ उप परियोजनाओं के लिए लागू किया जा सकता है।

allprojects {
   group = 'com.example.gradle'
   version = '0.1.0'
}

subprojects {
   apply plugin: 'java'
   apply plugin: 'eclipse'
}

यह एक सामान्य निर्दिष्ट करता है com.example.gradle समूह और 0.1.0सभी परियोजनाओं के लिए संस्करण। subprojects क्लोजर सभी उप परियोजनाओं के लिए सामान्य कॉन्फ़िगरेशन लागू करता है, लेकिन रूट प्रोजेक्ट की तरह नहीं allprojects बंद करता है

परियोजना विशिष्ट विन्यास और निर्भरताएँ

कोर ui तथा util उपप्रोजेक्ट भी अपने स्वयं के हो सकते हैं build.gradle फ़ाइल, अगर उनकी विशिष्ट आवश्यकताएं हैं, जो पहले से ही रूट प्रोजेक्ट के सामान्य कॉन्फ़िगरेशन द्वारा लागू नहीं हैं।

उदाहरण के लिए, यूआई परियोजना में आमतौर पर कोर परियोजना पर निर्भरता होती है। इसलिए यूआई परियोजना को अपनी जरूरत हैbuild.gradle इस निर्भरता को निर्दिष्ट करने के लिए फ़ाइल।

dependencies {
   compile project(':core')
   compile 'log4j:log4j:1.2.17'
}

परियोजना की निर्भरता परियोजना पद्धति के साथ निर्दिष्ट की जाती है।