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 जाँच

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

gradle compileJava
> Task :compileJava UP-TO-DATE

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

Gradle को किसी कस्टम कार्य को ट्रैक करने के लिए उसके इनपुट पर एनोटेशन लगाएँ। फ़ाइलें, निर्देशिकाएँ और सरल गुण—सभी मान्य हैं।

@InputFile
File getSource() { return source }

आउटपुट घोषित करना

आउटपुट Gradle को बताते हैं कि कार्य क्या बनाता है। यदि कोई आउटपुट हटा दिया जाए या बदल दिया जाए, तो कार्य फिर चलता है।

@OutputFile
File getReport() { return report }

गुणों वाले इनपुट

गैर-फ़ाइल इनपुट के लिए @Input का उपयोग करें। मान बदलने पर कैश किया गया परिणाम अमान्य हो जाता है।

@Input
String getGreeting() { return greeting }

बिना ट्रैक किए गए कार्य हमेशा क्यों चलते हैं

जिन कार्यों के इनपुट और आउटपुट घोषित नहीं होते, उनके पास तुलना करने के लिए कुछ नहीं होता, इसलिए Gradle उन्हें हर बार चलाता है। वृद्धिशीलता पाने के लिए इन्हें हमेशा घोषित करें।

वृद्धिशील कार्य क्रिया

उन्नत कार्य InputChanges का उपयोग करके सभी फ़ाइलों को फिर से संसाधित करने के बजाय केवल बदली हुई फ़ाइलों को संसाधित करते हैं।

tasks.register("process", ProcessTask) {
    // action receives InputChanges to query added/modified files
}

बिल्ड कैश का तालमेल

सही ढंग से घोषित किए गए इनपुट/आउटपुट बिल्ड कैश को भी सक्षम करते हैं: अलग-अलग मशीनों पर समान इनपुट होने पर संग्रहीत आउटपुट का फिर से उपयोग किया जाता है।

org.gradle.caching=true

दोबारा चलने के कारणों का पता लगाना

यह देखने के लिए कि कोई कार्य UP-TO-DATE क्यों नहीं था, --info फ़्लैग का उपयोग करें। Gradle बताता है कि कौन-सा इनपुट या आउटपुट बदला।

gradle build --info

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

हर बार बदलने वाले इनपुट से सावधान रहें:

  • आउटपुट में शामिल टाइमस्टैम्प
  • इनपुट में पूर्ण पथ
  • सिस्टम समय या यादृच्छिक मान पढ़ना

ये वृद्धिशीलता को बाधित करते हैं।

इनपुट को सामान्य बनाना

अप्रासंगिक अंतरों को अनदेखा करने के लिए पथ संवेदनशीलता का उपयोग करें, जैसे क्लासपाथ का क्रम, ताकि समतुल्य इनपुट का हैश समान हो।

@Classpath
FileCollection getDependencies() { return deps }

त्वरित जाँच

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

पुनरावृत्ति

आपने वृद्धिशील बिल्ड सीखे:

  • UP-TO-DATE का अर्थ है कि इनपुट/आउटपुट अपरिवर्तित रहे
  • @Input, @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 स्वचालन और बिल्ड इंजीनियरिंग पर वापस जाएँ