2013-12-12 15 views
9

मैं ग्रोवी और ग्रेडल के लिए नया हूं और सोच रहा था कि कोई जानता था कि मेरा स्क्रिप्लेट क्यों काम नहीं कर रहा था (वास्तव में यह काम करता है लेकिन चेतावनी अभी भी दिखाई देती है)। यह अनुभाग build.gradle स्क्रिप्ट से बाहर निकाला गया है और इंटेलिज इस पर प्रकाश डालता है और शिकायत करता है कि: "तर्क प्रकारों का अनुमान नहीं लगा सकता"। किसी भी मदद अच्छा :)build.gradle फ़ाइल, << नोटेशन का उपयोग करके कार्य, intellij चेतावनी देता है: "तर्क प्रकार का अनुमान नहीं लगा सकता"

task hellofun << { 
    [silly:'billy'].each { k, v -> 
     println "$k=$v" 
    } 
} 

संपादित होगा: मैं एक bug request इस समस्या के Intellij बताए प्रस्तुत की है

संपादित करें: जाहिरा तौर पर यह एक known bug मैं इस अपडेट कर देंगे एक बार बग है है निश्चित

+1

कि अजीब है। आपका कोड मेरे लिए बेकार ढंग से काम करता है। आप ग्रैडल का किस संस्करण का उपयोग कर रहे हैं? क्या कार्य विफल हो जाएगा, या समस्या यह है कि इंटेलिज इसके बारे में शिकायत कर रहा है? – silverbeak

+0

हुह ... यह मेरे लिए भी काम करता है लेकिन इंटेलिज इसके बारे में शिकायत करता है। – coderatchet

+0

इंटेलिजे का कौन सा संस्करण? IntelliJ 13. में पुन: उत्पन्न नहीं कर सकता है। (इंटेलिजे 12 में बहुत सीमित ग्रैडल समर्थन है।) किसी भी मामले में, यह सिर्फ एक चेतावनी है, और मुझे नहीं पता कि "मेरा लेखक काम नहीं कर रहा था" का मतलब क्या है। –

उत्तर

2

अत्यधिक गतिशील रूप से टाइप की गई भाषा में जैसे ग्रोवी जहां नाम और प्रतीकों को मनमाने ढंग से हल किया जाता है, कार्यक्रम चलाने के बिना समय से पहले किसी भी कथन की वैधता निर्धारित करना मुश्किल होगा । कार्यक्रम चलाने से सैद्धांतिक रूप से इनपुट के सभी संभावित क्रमिकताओं को प्रकट नहीं किया जाएगा जो एक कथन की रनटाइम वैधता को बदल सकता है।

मैं इस कठोर समस्या पर इंटेलिज के प्रयास की सराहना करता हूं और यहां कुछ गलत वाक्यविन्यास चेतावनियों के साथ रह सकता हूं।

2

इंटेलिजे बग ठीक होने तक, एक वर्कअराउंड है: < < के बजाय doFirst का उपयोग करें।

task hellofun() { 
    doFirst { 
    [silly:'billy'].each { k, v -> 
     println "$k=$v" 
    } 
    } 
} 

बग :)

+1

के साथ एक ही समस्या है यह एक कामकाज नहीं है। आपको << से बचना चाहिए क्योंकि कई लोग कॉन्फ़िगरेशन() {निष्पादन() के साथ << { –

3

सबमिट करते समय आप ग्रूवी> असाइनमेंट मुद्दे> असंगत प्रकार कार्य निरीक्षण निष्क्रिय करने के लिए तैयार हैं, तो के लिए धन्यवाद, चेतावनी चली जाती है।

0

वैकल्पिक हल के लिए, आप वास्तव में कॉल < < (doLast) ने संकेत दिया था चाहिए

task hellofun() { 
    doLast { 
    [silly:'billy'].each { k, v -> 
     println "$k=$v" 
    } 
    } 
} 
संबंधित मुद्दे

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