2015-04-06 8 views
8

के लिए मेवेन कंपाइलर प्लगइन जेडीके संस्करण मैवेन-कंपाइलर-प्लगइन के लिए मेरे pom.xml में निम्न कॉन्फ़िगरेशन है।स्रोत और लक्ष्य

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

जेडीके का स्रोत और लक्ष्य संस्करण क्या होना चाहिए? यह मेरे कंप्यूटर पर स्थापित jdk के संस्करण पर निर्भर करता है? क्या वे अलग हो सकते हैं? जैसे स्थापित जेडीके 1.8 है, स्रोत पैरामीटर में - 1.6, लक्ष्य - 1.7।

उत्तर

10

स्रोत/लक्ष्य के साथ आप केवल javac के स्विच को परिभाषित करते हैं जिसका अर्थ संगत कोड उत्पन्न करना है। उदाहरण के लिए यदि आपने jdk 8 स्थापित किया है और जावा 7 रन करने योग्य कक्षाएं बनाना चाहते हैं। लेकिन यह जांच नहीं करता है कि आपने जेडीके 8 स्थापित किया है या नहीं। यदि आपके पास जेडीके 7 स्थापित है तो यह भी काम करेगा।

तुम सच में JDK संस्करण है जो स्थापित किया गया है आप maven-enforcer-plugin के माध्यम से जाने के लिए और स्थापित JDK जाँच करने के लिए है की जाँच करने की आवश्यकता है ...

<project> 
    [...] 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-enforcer-plugin</artifactId> 
     <version>1.4</version> 
     <executions> 
      <execution> 
      <id>enforce-java</id> 
      <goals> 
       <goal>enforce</goal> 
      </goals> 
      <configuration> 
       <rules> 
       <requireJavaVersion> 
        <version>1.8.0</version> 
       </requireJavaVersion> 
       </rules>  
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    [...] 
</project> 
आप ऊपर के साथ

एक JDK पर बनाने के लिए सक्षम नहीं हैं 7 और ... केवल जेडीके 8 के साथ ...

बीटीडब्ल्यू: आप ऐसे पुराने maven-compiler-plugin संस्करण का उपयोग क्यों कर रहे हैं?

+0

यह पुराने ट्यूटोरियल से एक उदाहरण था। इसके अलावा यदि स्रोत जेडीके लक्ष्य से अधिक है तो यह एमवीएन त्रुटि का कारण बनता है, जो प्राकृतिक है। –

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