2015-10-29 4 views
9

एक परियोजना के लिए जिस पर मैं वर्तमान में काम कर रहा हूं, IntelliJ ने मुझे संकलन त्रुटि Error:java: javacTask: source release 8 requires target release 1.8 दिया। मैं सेटिंग्स> बिल्ड, निष्पादन, परिनियोजन> कंपाइलर> जावा में गया और देखा कि मेरे मॉड्यूल में से एक के लिए लक्ष्य बाइटकोड संस्करण 1.5 पर सेट किया गया था, इसलिए मैंने इसे 1.8 में संकलित किया, संकलित किया, और यह काम किया। लेकिन फिर अगले दिन, मुझे एक ही त्रुटि मिली। मैं सेटिंग में गया था और उस मॉड्यूल के लिए लक्ष्य बाइटकोड 1.5 पर वापस था। मैंने इसे 1.8 में बदल दिया और यह संकलित/बस ठीक चला गया। यह अब कई बार हुआ है और मैं लक्ष्य बाइटकोड संस्करण मैन्युअल रूप से बदलने के लिए सेटिंग्स में जाने के कई बार निराश हूं।IntelliJ लक्ष्य बाइटकोड

लक्ष्य बाइटकोड संस्करण क्यों बदल रहा है? मेरे पास पोम या कहीं और 1.5 में निर्दिष्ट नहीं है, इसलिए मैं परेशान हूं कि बाइटकोड संस्करण 1.5 पर क्यों सेट हो रहा है।

+0

'परेशान' बिल्कुल मुझे कैसा लगा। –

उत्तर

6

स्वीकार किए जाते हैं जवाब भावना है कि आप अपने pom.xml फ़ाइल में स्रोत और लक्ष्य संस्करणों निर्दिष्ट करने की आवश्यकता में सही है, लेकिन जब से maven-compiler-plugin है डिफ़ॉल्ट रूप से जोड़ा गया, ऐसा करने का एक आसान तरीका निम्न गुणों को सेट करना होगा:

<properties> 
    <maven.compiler.source>1.8</maven.compiler.source> 
    <maven.compiler.target>1.8</maven.compiler.target> 
</properties> 
+1

यह स्वीकार्य उत्तर होना चाहिए – RedShift

8

आप अपने पोम को यह डी डी भेजिए की जरूरत है:

<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.3</version> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
    </plugins> 
</build>