2014-12-20 13 views
55

मैं Gradle के लिए नए और ग्रूवी और समझने के लिए ग्रूवी के स्तर पर हो रहा है जब एक Gradle कार्य परिभाषित किया गया है की कोशिश कर रहा हूँ में ग्रूवी वाक्य रचना को समझना।एक Gradle कार्य परिभाषा

task hello { 
    println "configuring task hello" 
    doLast { 
    println "hello there" 
    } 
} 

"Gradle इन एक्शन" किताब पढ़ने से मुझे पता है कि task hello {} एक बहुत ग्रूवी Project इंटरफ़ेस का task() विधि के लिए एक कॉल है। पेज 77 पर यह पता चलता है कि 4 तरीकों Project इंटरफ़ेस

task(args: Map<String,?>, name:String) 
task(args: Map<String,?>, name:String, c:Closure) 
task(name: String) 
task(name: String, c:Closure) 

मैं समझता हूँ कि {} बंद शरीर है पर काम कहा जाता है कि।

  • मैं कहां मिल सकते हैं:

    क्या मुझे समझ नहीं आता कैसे ग्रूवी https://stackoverflow.com/a/25592665/438319 के अनुसार task hello { } में hello व्याख्या करता है वहाँ एक ग्रूवी संकलक प्लगइन है कि धर्मान्तरित task hello { }task('hello', { }) में

    मेरे प्रश्न है ग्रैडल ग्रोवी कंपाइलर प्लगइन के बारे में जानकारी जो रूपांतरण करता है?

  • क्या दावा है कि ग्रैडल स्क्रिप्ट ग्रोवी प्रोग्राम तकनीकी रूप से गलत हैं क्योंकि किसी भी तरह से ग्रोवी प्रोग्रामिंग भाषा को बढ़ाता है?

  • क्या संकलक प्लगइन चलाने के बाद उत्पन्न होने वाले बेस ग्रूवी कोड को मुद्रित करने के लिए gradle कमांड प्राप्त करने का कोई तरीका है?

उत्तर

61

Gradle AST Transformations का उपयोग करता ग्रूवी वाक्य रचना का विस्तार करने के। आपके द्वारा उल्लेख की जाने वाली कार्य परिभाषा वाक्यविन्यास केवल परिवर्तनों में से एक है ग्राडल लागू होता है। आप here को बदलने के लिए कार्यान्वयन पा सकते हैं। अपने विशिष्ट सवालों के जवाब देने के लिए:

  • व्यक्ति बदल देती है कि Gradle लागू होता है विशेष रूप से कहीं भी दर्ज नहीं किया जाता है कि मैं के बारे में पता कर रहा हूँ। हालांकि आप ऊपर दिए गए लिंक के उसी पैकेज में अन्य कक्षाओं को देख सकते हैं।

  • Gradle लिपियों ग्रूवी वाक्य रचना की एक सुपर सेट समर्थन करते हैं। किसी भी वैध ग्रोवी को ग्रैडल स्क्रिप्ट में भी मान्य है, हालांकि, एक ग्रैडल स्क्रिप्ट आवश्यक नहीं है (और आमतौर पर नहीं) मान्य "डिफ़ॉल्ट" ग्रोवी।

  • समकक्ष ग्रोवी कोड का आउटपुट प्राप्त करने का कोई तरीका नहीं है क्योंकि यह वास्तविक सार वाक्यविन्यास पेड़ है जिसे स्मृति में छेड़छाड़ की जा रही है।

संबंधित मुद्दे