2015-03-13 13 views
13

के लिए मान्य विकल्प नहीं है I IntelliJ जब मैं अपनी परियोजना बनाने का प्रयास करता हूं तो निम्न अपवाद के साथ शिकायत करता है।'jvm-1.8' '-target'

Error:scalac: 'jvm-1.8' is not a valid choice for '-target' 
Error:scalac: bad option: '-target:jvm-1.8' 

लेकिन एक 'gradlew क्लीन इंस्टॉल' बस ठीक काम करता है।

परियोजना सेटअप है:

Gradle संस्करण 2.3

स्केला 2.10 और जावा

4 मॉड्यूल के 3 जावा 1.7 (स्रोत और लक्ष्य अनुकूलता) का उपयोग, 4 मॉड्यूल स्रोत और लक्ष्य है संगतता 1.8 और समस्या पैदा कर रहा है।

कोई विचार मैं त्रुटि से कैसे बच सकता हूं? चींटी कार्य का उपयोग स्काला कोड के निर्माण के लिए डिफ़ॉल्ट रूप से (जावा 7 में जाने एक विकल्प नहीं है, उन्नयन स्केला है)

+0

इंटेलिजे जावा 7 पर चल रहा है? – migron

+0

लगभग स्क्रीन कहती है 1.8_20 –

उत्तर

6

Gradle, और https://issues.scala-lang.org/browse/SI-8966 शो कि JVM 1.8 स्काला 2.11.5 जब तक एक समर्थित लक्ष्य के रूप में नहीं जोड़ा गया है।

आप निम्न आधारित बिल्ड फ़ाइल को जोड़कर जिंक आधारित कंपाइलर का उपयोग करने का प्रयास कर सकते हैं।

tasks.withType(ScalaCompile) { 
     scalaCompileOptions.useAnt = false 
    } 

आपको अपनी निर्भरता सूची में जस्ता कंपाइलर भी जोड़ने की आवश्यकता हो सकती है।

+2

एचएम, धीरे-धीरे निर्माण वास्तव में काम करता है, यह केवल इंटेलिज के अंदर है कि मुझे यह समस्या दिखाई देती है। खैर मैं स्कैला संस्करण को अपग्रेड करूँगा और देखें कि क्या होता है। –

+0

स्वीकृत, क्योंकि यह सही दिशा में इंगित करता है। मुझे अभी भी विवरण समझ में नहीं आ रहा है, लेकिन बिल्ड स्क्रिप्ट में स्कैला 2.11 में अपग्रेड करने से इंटेलिज –

3

मैं उम्र के लिए इसके लिए एक समाधान खोज रहा था, अंत में यह पाया - इसे पढ़ने वाले किसी और के लिए साझा करना।

से लिया: https://devnet.jetbrains.com/message/5523902

subprojects { 
    tasks.withType(ScalaCompile) { 
     sourceCompatibility = "1.7" 
     targetCompatibility = "1.7" 
    } 
} 
6

IntelliJ विचार (15 सीई) में इस scalac संकलक विकल्प जोड़ने:

बिल्ड, निष्पादन, तैनाती ->संकलक ->स्काला संकलक -> डिफ़ॉल्ट

अतिरिक्त कंपाइलर विकल्प: -target:jvm-1.7 (खाली था)।

, भी थे प्रोफाइल Gradle 1 ... -target:jvm-1.8 साथ, तो मैं उन्हें -target:jvm-1.7 को भी बदल दिया है।

मैं स्कैला 2.10, जेवीएम 1.8, स्रोत संगतता 1.7 का उपयोग कर रहा हूं। यह मेरे मामले में मदद की।

+0

में समस्या ठीक हो गई है, ऊपर अप करने के बाद, मुझे अपवाद मिला: स्कैला: खराब विकल्प: '-target: jvm-1.8', @ बोहुमिर ज़मेकनिक – Jet

0

यदि आप अपने इंटेलिजे परियोजना एसडीके के रूप में जेडीके 1.8 का उपयोग कर रहे हैं, तो डिफ़ॉल्ट प्रोजेक्ट भाषा स्तर और स्रोत संगतता डिफ़ॉल्ट रूप से संस्करण 8 पर सेट की जा सकती है। यह इंटेलिजे की स्कैला कंपाइलर सेटिंग्स में भी दिखाई देगा।

डिफ़ॉल्ट जावा 8 भाषा के स्तर ओवरराइड करने के लिए, यह मेरे जोड़ने के लिए के लिए मेरे build.gradle के लिए निम्न केवल जरूरी हो गया था:

sourceCompatibility = 1.7 

कि करने के बाद, IntelliJ विचार Gradle परियोजना को फिर से आयात करते हैं।इसके बाद आप की पुष्टि करनी चाहिए कि बदलाव के तहत की जाँच करके इंटेलीजे द्वारा उठाया गया है: सेटिंग्स -> निर्माण, निष्पादन, तैनाती -> संकलक ->अतिरिक्त संकलक विकल्पों पर स्काला संकलक

देखो से प्रत्येक के लिए क्षेत्र सूचीबद्ध मॉड्यूल और सुनिश्चित करें कि इसमें -target:jvm-1.7 है, और -target:jvm-1.8 नहीं है।

के तहत परियोजना सेटिंग्स -> मॉड्यूल, तो आप उस भाषा स्तर अब भी पर सेट है देखना चाहिए।

एनबी। sourceCompatibility ग्रैडल गुणों के तहत allprojects, subprojects या tasks.withType(ScalaCompile) का उपयोग करके मेरे लिए काम नहीं किया; इसे उठाए जाने के लिए अलग से निर्दिष्ट किया जाना था।

(यह मेरे लिए काम किया IntelliJ विचार 2017/02/03 का उपयोग कर, Gradle 4.1, Gradle स्काला प्लगइन और स्काला संस्करण 2.10)

3

मैं डब्ल्यू/JRE 1.8.0 इंटेलीजे 2017/02/05 का उपयोग कर एक ही त्रुटि संदेश मिला, स्कैला 2.10.5 और ग्रेडल 3.3। मैं

सेटिंग्स में>, तैनाती> उपकरण का निर्माण स्थित इंटेलीजे के IDE में चेकबॉक्स "Gradle के प्रतिनिधि आईडीई निर्माण/चलाने कार्रवाई" निर्माण, निष्पादन की जाँच करके मेरी समस्या हल> Gradle> धावक

विवरण यहां पाया जा सकता : https://docs.gradle.org/4.2.1/userguide/scala_plugin.html#ideaTargetVersion और https://www.jetbrains.com/help/idea/gradle.html

ध्यान दें

, मैं IntelliJ के बाहर मेरी Gradle परियोजना का निर्माण करने में सक्षम था (यानी cmd लाइन) और केवल इंटेलीजे आईडीई का उपयोग कर बनाने का प्रयास करने पर यह त्रुटि प्राप्त किया।

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