2012-11-01 19 views
7

यदि परियोजना में (असंबद्ध!) संकलन त्रुटियां हैं तो स्कैला आईडीई 2.0.2 (ग्रहण 3.7) के भीतर स्कैला एप्लिकेशन या यूनिट परीक्षण चलाने का कोई तरीका है?संकलन त्रुटियों के साथ स्कैला आईडीई में स्केल एप्लिकेशन चलाएं

जावा में, यह कोई समस्या नहीं है, लेकिन स्काला आईडीई मुझे बता रहता है:

परियोजना संकलन त्रुटियाँ हैं (इसलिए, कोई बाइनरी उत्पादन किया गया है)।

मैं बस एक प्रमुख रिफैक्टरिंग प्रक्रिया के दौरान एक छोटा परीक्षण चलाने के लिए करना चाहता हूं, लेकिन मैं अभी सभी संकलन त्रुटियों को ठीक नहीं कर सकता। और मैं चीजों को टिप्पणी करना शुरू नहीं करना चाहता, क्योंकि उन संकलन त्रुटियां उन कार्यों की अच्छी अनुस्मारक हैं जिन्हें अभी भी करने की आवश्यकता है।

उत्तर

4

वर्तमान में स्काला आईडीई इस व्यवहार का समर्थन नहीं करता है, लेकिन यह अच्छा होगा यदि यह हो सकता होगा।

इस बारे में पता होना करने के लिए, मेरे द्वारा बनाए गए एक ticket:

जेडीटी स्रोतों में संकलन समस्याओं के बावजूद जावा कोड निष्पादित करने के लिए अनुमति देता है। आंतरिक रूप से जेडीटी एक अपवाद के साथ दोषपूर्ण कोड को प्रतिस्थापित करता है, जो प्रासंगिक कोड निष्पादित होने पर फेंक दिया जाता है। लेकिन अगर निष्पादन के दौरान दोषपूर्ण कोड कभी नहीं बुलाया जाता है, तो कुछ बुरा नहीं होता है। यह अच्छा होगा अगर एसडीटी समान व्यवहार का समर्थन करता है।

+0

दिलचस्प, मुझे नहीं पता था कि जेडीटी को इस सुविधा का समर्थन करने के लिए ऐसा कुछ करना है। मैंने सोचा कि यह किसी भी तरह से क्लासपाथ से ग़लत वर्गों को पूरी तरह से बाहर प्रोग्राम को निष्पादित करता है। लेकिन यह और अधिक समझ में आता है। टिकट और स्पष्टीकरण के लिए धन्यवाद। – rolve

1

यदि आप स्कैला 2.10 का उपयोग कर रहे हैं, तो एक अच्छा विकल्प नए पेश किए गए ??? नोटेशन का उपयोग करना है। इस तरह आपका कोड संकलित होगा भले ही फ़ंक्शन अभी तक लागू नहीं हुआ हो।

निश्चित रूप से एक बेहतर तरीका है लेकिन यह अभी भी कोड टिप्पणी करने से बेहतर होगा।

जेस्पर ने सुझाव दिया है, तो आप अभी भी ??? लागू कर सकते हैं अगर आप स्काला के पिछले संस्करणों के साथ काम कर रहे:

def ??? : Nothing = throw new Error("Not implemented") 
+0

धन्यवाद, लेकिन मुझे स्कैला 2.9.2 का उपयोग करने के लिए मजबूर होना पड़ता है। – rolve

+2

@rolve ध्यान दें कि '???' कोई नया कीवर्ड या भाषा में परिवर्तन नहीं है। आप इसे आसानी से प्रोग्राम कर सकते हैं: 'def ???: कुछ भी नहीं = नई त्रुटि फेंक दें ("लागू नहीं किया गया")' (यह कोर्ससरा स्काला कोर्स में किया गया है)। स्पष्टीकरण के लिए – Jesper

+0

धन्यवाद! –

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