उपपरियोजनाएँ और कॉन्फ़िगरेशन
उपपरियोजनाएँ परिभाषित और कॉन्फ़िगर करें तथा समझें कि वे बहु-परियोजना बिल्ड में कैसे परस्पर क्रिया करती हैं।
उपपरियोजनाएँ और कॉन्फ़िगरेशन, CoddyKit पर Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
उपपरियोजनाओं में आपका स्वागत है!
बड़ी सॉफ़्टवेयर परियोजनाओं में सब कुछ एक ही विशाल बिल्ड फ़ाइल में रखना अव्यवस्थित हो सकता है। ऐसे में उपपरियोजनाएँ बहुत उपयोगी होती हैं!
उपपरियोजनाएँ आपको किसी बड़ी परियोजना को छोटे, प्रबंधनीय मॉड्यूल में बाँटने देती हैं। इन्हें अपनी मुख्य परियोजना के भीतर मौजूद छोटी परियोजनाओं की तरह समझिए।
- मॉड्यूलरता: कोड को तार्किक ढंग से व्यवस्थित करें।
- पुनः उपयोग: मॉड्यूल के बीच सामान्य तर्क साझा करें।
- तेज़ बिल्ड: Gradle केवल बदली हुई उपपरियोजनाओं पर काम करके बिल्ड को अनुकूलित कर सकता है।
उपपरियोजनाएँ घोषित करना
Gradle को अपनी उपपरियोजनाओं के बारे में बताने के लिए आप settings.gradle फ़ाइल का उपयोग करते हैं। यह फ़ाइल आपके रूट प्रोजेक्ट की डायरेक्टरी में होती है।
आप include कीवर्ड के बाद अपनी उपपरियोजना की डायरेक्टरी का पथ लिखते हैं। आमतौर पर प्रत्येक उपपरियोजना अपने अलग फ़ोल्डर में रहती है।
/* settings.gradle */
rootProject.name = 'my-multi-project'
include 'app'
include 'library'उपपरियोजना डायरेक्टरी संरचना
settings.gradle में घोषित किए जाने के बाद, आपकी परियोजना की संरचना आमतौर पर इस प्रकार दिखाई देगी:
my-multi-project/(रूट प्रोजेक्ट)settings.gradlebuild.gradle(रूट बिल्ड फ़ाइल)app/(उपपरियोजना 1)build.gradle- ... (सोर्स कोड, संसाधन)
library/(उपपरियोजना 2)build.gradle- ... (सोर्स कोड, संसाधन)
प्रत्येक उपपरियोजना की अपनी build.gradle फ़ाइल होती है।
उपपरियोजना की बिल्ड फ़ाइलें
आपके रूट प्रोजेक्ट की तरह, प्रत्येक उपपरियोजना की अपनी build.gradle फ़ाइल होती है। इससे आप उस विशेष मॉड्यूल के लिए विशिष्ट कॉन्फ़िगरेशन, निर्भरताएँ और कार्य परिभाषित कर सकते हैं।
उदाहरण के लिए, आपकी app उपपरियोजना एक चलने योग्य अनुप्रयोग बना सकती है, जबकि आपकी library उपपरियोजना पुनः उपयोग योग्य JAR बना सकती है।
/* library/build.gradle */
plugins {
id 'java'
}
group 'com.coddykit'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
testImplementation platform('org.junit:junit-bom:5.9.1')
testImplementation 'org.junit.jupiter:junit-jupiter'
}उपपरियोजना का कार्य परिभाषित करना
आप उपपरियोजना की build.gradle फ़ाइल में कार्य परिभाषित कर सकते हैं। ये कार्य फिर उसी उपपरियोजना के लिए विशिष्ट होते हैं।
आइए अपनी library उपपरियोजना में एक सरल कार्य जोड़ते हैं, जो एक संदेश प्रिंट करता है।
/* library/build.gradle */
plugins {
id 'java'
}
group 'com.coddykit'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
task helloLibrary {
doLast {
println "Hello from the Library subproject!"
}
}उपपरियोजना के कार्य चलाना
रूट डायरेक्टरी से किसी विशिष्ट उपपरियोजना के कार्य को चलाने के लिए, उपपरियोजना के नाम और कार्य के नाम को अलग करने हेतु कोलन : का उपयोग करें।
उदाहरण के लिए, अपनी library उपपरियोजना से helloLibrary कार्य चलाने के लिए:
public class Main {
public static void main(String[] args) {
System.out.println("To run the task: gradle :library:helloLibrary");
System.out.println("Output will be: Hello from the Library subproject!");
}
}सामान्य कॉन्फ़िगरेशन: allprojects
कभी-कभी आप अपने बहु-परियोजना बिल्ड की सभी परियोजनाओं (रूट प्रोजेक्ट और उसकी सभी उपपरियोजनाओं) पर समान कॉन्फ़िगरेशन लागू करना चाहते हैं।
आप अपनी रूट build.gradle फ़ाइल में रूट के allprojects { ... } ब्लॉक का उपयोग करके ऐसा कर सकते हैं।
/* build.gradle (root) */
allprojects {
group 'com.coddykit.common'
version '1.0.0'
repositories {
mavenCentral()
}
}विशिष्ट उपपरियोजनाओं को लक्षित करना
सामान्य सेटिंग के लिए allprojects उपयोगी है, लेकिन अक्सर आपको रूट बिल्ड फ़ाइल से अलग-अलग उपपरियोजनाओं को कॉन्फ़िगर करने की आवश्यकता होती है।
किसी एक उपपरियोजना पर विशेष रूप से कॉन्फ़िगरेशन लागू करने के लिए आप project(':subprojectName') { ... } ब्लॉक का उपयोग कर सकते हैं।
/* build.gradle (root) */
project(':app') {
apply plugin: 'application'
mainClassName = 'com.coddykit.app.MainApp'
}
project(':library') {
apply plugin: 'java-library'
}प्रॉपर्टी साझा करना
आप अपने रूट प्रोजेक्ट की प्रॉपर्टी या चर सभी उपपरियोजनाओं के साथ साझा कर सकते हैं। यह समान संस्करण संख्याओं या बिल्ड फ़्लैग जैसी चीज़ों के लिए उपयोगी है।
रूट build.gradle में ext ब्लॉक ("अतिरिक्त प्रॉपर्टी" के लिए) का उपयोग करें और उपपरियोजनाओं में इसे rootProject.ext.propertyName के माध्यम से एक्सेस करें।
/* build.gradle (root) */
ext {
groovyVersion = '3.0.9'
springBootVersion = '2.7.5'
}
allprojects {
// Access properties in subprojects
println "Groovy Version: ${rootProject.ext.groovyVersion}"
}बहु-चयन जाँच
Gradle की उपपरियोजनाओं और उनके कॉन्फ़िगरेशन के बारे में निम्नलिखित में से कौन-से कथन TRUE हैं?
उपपरियोजनाओं का पुनरावलोकन
बहुत अच्छा! आपने Gradle की उपपरियोजनाओं को सेट अप और कॉन्फ़िगर करने की मूल बातें सीख ली हैं।
- उपपरियोजनाएँ बड़े बिल्ड को व्यवस्थित करने में सहायता करती हैं।
- उन्हें
includeका उपयोग करकेsettings.gradleमें घोषित किया जाता है। - प्रत्येक उपपरियोजना की अपनी
build.gradleफ़ाइल होती है। - आप
allprojects { ... }का उपयोग करके सभी परियोजनाओं को याproject(':name') { ... }का उपयोग करके विशिष्ट परियोजनाओं को कॉन्फ़िगर कर सकते हैं। - कार्य
:subproject:taskसिंटैक्स से चलाए जाते हैं।
अब हम जानेंगे कि उपपरियोजनाएँ एक-दूसरे पर निर्भर कैसे हो सकती हैं!
एआई शिक्षक के साथ Groovy सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 12
- पाठ
- 48
अक्सर पूछे जाने वाले प्रश्न
क्या “उपपरियोजनाएँ और कॉन्फ़िगरेशन” पाठ निःशुल्क है?
हाँ—“उपपरियोजनाएँ और कॉन्फ़िगरेशन” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“उपपरियोजनाएँ और कॉन्फ़िगरेशन” में मैं क्या सीखूँगा?
उपपरियोजनाएँ परिभाषित और कॉन्फ़िगर करें तथा समझें कि वे बहु-परियोजना बिल्ड में कैसे परस्पर क्रिया करती हैं। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।
“उपपरियोजनाएँ और कॉन्फ़िगरेशन” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- Monorepo परियोजना संरचना
- उपपरियोजनाएँ और कॉन्फ़िगरेशन
- परियोजनाओं के बीच निर्भरताएँ
- संयुक्त बिल्ड और बिल्ड संयोजन