groovy - When to use "<<" in Gradle task -
कभी-कभी मैं देख रहा हूँ:
कार्य हे & lt; & lt; {Println "हैलो, ग्रेडल!" }
दूसरी बार मैं देख रहा हूं:
कार्य हे {println "हैलो, ग्रेडल!"
"
< Div class = "post-text" itemprop = "text">
& lt; & lt;
doLast
के लिए लघुकथा है। आपके प्रश्न में कार्य समकक्ष नहीं हैं।
यह कार्य:
कार्य हे & lt; & lt; {Println "हैलो, ग्रेडल!" }
इस कार्य के बराबर है:
कार्य हे {doLast} {println "हैलो, ग्रेडले!" }}
आपके दूसरे उदाहरण में कोड हर बार लिपि स्क्रिप्ट निष्पादित करता है, चाहे आप उस विशेष कार्य को चला रहे हों या नहीं। उदाहरण के लिए, यदि आपके पास निम्नलिखित कार्य थे और फिर अलविदा
चला गया, तो आप दोनों "हैलो, विश्व!" देखेंगे और "अलविदा, विश्व!" भले ही आप केवल "अलविदा" कार्य निष्पादित कर रहे हैं:
कार्य हैलो {println "हैलो, दुनिया!" } कार्य अलविदा {println "अलविदा, दुनिया!" }
परिणाम:
$ gradle अलविदा नमस्ते, दुनिया! अलविदा दुनिया! : अलविदा यूपी-टू-डेट
हालांकि, यदि आप & lt; & lt;
या doLast
का उपयोग करने के लिए कार्य परिभाषाओं को अपडेट करते हैं (उदाहरण के लिए) कार्य हैलो & lt; & lt; {}
), आप केवल उस कार्य से println
देखेंगे।
एडम मर्डोक का वर्णन है कि एक कार्य को कार्यान्वित किया जाएगा मैंने यहां कुछ प्रासंगिक जानकारी उद्धृत की है:
समय में दो अलग-अलग बिंदु हैं जब एक कार्य से संबंधित कोड कार्यान्वित किया जाता है: पहला विन्यास समय है, जो तब होता है जब निर्माण स्क्रिप्ट कार्यान्वित होता है । विचार यह है कि इस समय आप कार्य को कॉन्फ़िगर करते हैं, ताकि समय पर दूसरे बिंदु पर यह सही काम करे, अर्थात् निष्पादन समय कार्य निष्पादन समय उस समय होता है जहां कार्य उसकी वास्तविक कार्य करता है, और तभी होता है जब कार्य निष्पादन के लिए चुना जाता है, और इसके निर्भरता के बाद निष्पादित किया जाता है।
प्रत्येक कार्य में क्रियाओं का अनुक्रम होता है, जो निर्दिष्ट कार्य में चलाया जाता है जब कार्य निष्पादित होता है। एक कार्य केवल एक समापन या क्रिया क्रियान्वयन है DoFirst () विधि अनुक्रम की शुरुआत में कोई क्रिया जोड़ने के लिए कार्य को कॉन्फ़िगर करता है DoLast () और & lt; & lt; विधियों को अनुक्रम के अंत में एक क्रिया जोड़ने के लिए कार्य कॉन्फ़िगर करता है।
Comments
Post a Comment