Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग · पाठ

क्रमवर्धी कार्य और अद्यतन-जाँच

इनपुट और आउटपुट घोषित करके कस्टम कार्यों को तेज़ और सही बनाएँ, ताकि Gradle पहले से अद्यतन कार्य को छोड़ सके।

पाठ 4, कुल 4 में से13 चरण

क्रमवर्धी कार्य और अद्यतन-जाँच, CoddyKit पर Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

कार्य क्यों छोड़े जाते हैं

Gradle तेज़ है क्योंकि यह काम दोबारा नहीं करता। यदि कोई कार्य पहले चल चुका है और जिस पर वह निर्भर है उसमें कुछ नहीं बदला, तो Gradle उसे UP-TO-DATE चिह्नित करके छोड़ देता है। इसे सक्षम करने के लिए आप इनपुट और आउटपुट घोषित करते हैं।

इनपुट और आउटपुट

हर कार्य यह घोषित कर सकता है कि वह क्या पढ़ता है (inputs) और क्या बनाता है (outputs)। Gradle यह तय करने के लिए उनका हैश बनाता है कि कार्य चलाना है या नहीं।

फ़ाइल इनपुट घोषित करना

इनपुट फ़ाइलों पर एनोटेशन लगाएँ या उन्हें पंजीकृत करें, ताकि Gradle उनमें होने वाले बदलावों पर नज़र रख सके।

tasks.register('process') {
    inputs.file 'data/in.txt'
    outputs.file 'build/out.txt'
}

अप-टू-डेट निर्णय

हर रन पर Gradle वर्तमान इनपुट/आउटपुट हैश की तुलना पिछले रन से करता है। यदि दोनों समान हों, तो कार्य छोड़ दिया जाता है; यदि कोई इनपुट बदला हो, तो कार्य फिर चलता है।

प्रॉपर्टी इनपुट

गैर-फ़ाइल इनपुट (जैसे फ़्लैग या संस्करण स्ट्रिंग) inputs.property से घोषित किए जाते हैं, ताकि उनमें बदलाव होने पर कैश भी अमान्य हो जाए।

tasks.register('gen') {
    inputs.property 'version', project.version
    outputs.dir 'build/gen'
}

कस्टम कार्य प्रकार

पुनः उपयोग योग्य लॉजिक के लिए एनोटेशन वाली प्रॉपर्टी के साथ एक कार्य क्लास लिखें: @InputFile, @OutputFile, @Input। Gradle एनोटेशन को अपने-आप पढ़ लेता है।

एनोटेशन वाला कार्य क्लास

एनोटेशन Gradle को मैन्युअल इनपुट/आउटपुट वायरिंग के बिना हर प्रॉपर्टी पर नज़र रखने का तरीका बताते हैं।

class Copy extends DefaultTask {
    @InputFile File source
    @OutputFile File dest
    @TaskAction void run() { dest.text = source.text }
}

वृद्धिशील इनपुट

कई फ़ाइलों पर काम करने वाले कार्यों के लिए @Incremental इनपुट, कार्य को पिछले रन के बाद वास्तव में बदली हुई फ़ाइलों पर ही प्रक्रिया करने देते हैं।

बिल्ड कैश

अप-टू-डेट जाँच के अलावा, बिल्ड कैश समान इनपुट हैश के आधार पर किसी भी मशीन पर पिछले रन के आउटपुट का पुनः उपयोग कर सकता है — CI के लिए यह बहुत उपयोगी है।

org.gradle.caching=true

सामान्य गलतियाँ

इनपुट घोषित करना भूल जाना सबसे सामान्य बग है: Gradle ऐसे कार्य को छोड़ देता है जिसे फिर चलना चाहिए था, जिससे पुराना आउटपुट बनता है। परिणाम को प्रभावित करने वाले हर इनपुट को हमेशा घोषित करें।

फिर से चलाना बाध्य करना

कैशिंग की जाँच करने या पुराने स्टेट से निपटने के लिए, एक बिल्ड में अप-टू-डेट जाँचों को अनदेखा करने हेतु --rerun-tasks के साथ चलाएँ, या outputs.upToDateWhen { false } का उपयोग करके किसी कार्य को कभी भी अप-टू-डेट न चिह्नित करें।

gradle build --rerun-tasks

त्वरित जाँच

वृद्धिशील बिल्ड के अपने ज्ञान की जाँच करें।

पुनरावलोकन

आपने तेज़ और सही कार्य बनाना सीखा:

  • Gradle उन कार्यों को छोड़ देता है जिनके इनपुट और आउटपुट अपरिवर्तित हों
  • inputs.file/outputs.file से फ़ाइलें और inputs.property से मान घोषित करें
  • कस्टम कार्य क्लास @InputFile/@OutputFile एनोटेशन का उपयोग करते हैं
  • बिल्ड कैश अलग-अलग मशीनों पर आउटपुट का पुनः उपयोग करता है
  • अघोषित इनपुट के कारण पुराना और गलत तरीके से छोड़ा गया कार्य मिलता है
शुरुआत निःशुल्क

एआई शिक्षक के साथ Groovy सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
12
पाठ
48

अक्सर पूछे जाने वाले प्रश्न

क्या “क्रमवर्धी कार्य और अद्यतन-जाँच” पाठ निःशुल्क है?

हाँ—“क्रमवर्धी कार्य और अद्यतन-जाँच” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“क्रमवर्धी कार्य और अद्यतन-जाँच” में मैं क्या सीखूँगा?

इनपुट और आउटपुट घोषित करके कस्टम कार्यों को तेज़ और सही बनाएँ, ताकि Gradle पहले से अद्यतन कार्य को छोड़ सके। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“क्रमवर्धी कार्य और अद्यतन-जाँच” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. कस्टम कार्य परिभाषित करना
  2. कार्य प्रकार और क्रियाएँ
  3. कार्य गुण और कॉन्फ़िगरेशन
  4. क्रमवर्धी कार्य और अद्यतन-जाँच
← Groovy और Gradle: JVM स्वचालन और बिल्ड इंजीनियरिंग पर वापस जाएँ