2009-07-28 7 views
6

मैं जावा प्रोग्राम पर काम करता हूं जो जावा 5 के साथ compatibe होना चाहिए। मेरे पास जावा 6 में अनुमत इंटरफेस विधियों पर @Override एनोटेशन था, लेकिन 5 में नहीं। मैं जावा 6 एसडीके का उपयोग करता हूं। जब मैं इसे 5.0 अनुपालन पर सेट करता हूं तो ग्रहण @Override पर त्रुटि संदेशों को सही ढंग से देता है।क्या मैवेन वास्तव में संकलक प्लगइन में <source> टैग का सम्मान करता है?

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

Am मैं उम्मीद कर रहा है कि यह वास्तव निर्माण विफल करना चाहिए में ठीक करें: मेरे Maven निर्माण, हालांकि, यहां तक ​​कि एक चेतावनी के बिना, मेरे पोम में निम्नलिखित सेटिंग्स का उपयोग कर चलाता है? ऐसा क्यों नहीं है, और क्या मैं कुछ कर सकता हूं?

उत्तर

5

यह वास्तव में एक जेडीके समस्या है, मैवेन समस्या नहीं है। @Override एनोटेशन एक सोर्स 1.5 फ्लैग से 1.6 जावैक तक विफल नहीं हो रहा है। आगे बढिए और इसे आजमाइए। इसे विफल करने का एकमात्र तरीका दुर्भाग्य से 1.5 javac का उपयोग करने के लिए है।

क्षमा करें, एचटीएच।

संपादित
मैं इस समस्या को अपने आप में भाग है, और अगर यह वास्तव में पोम में सेटिंग को देख रहा है मैं भी सोच। डीबग आउटपुट चालू करना (-एक्स मुझे विश्वास है, थोड़ी देर पहले) मानक आउटपुट में javac कमांड लाइन मुद्रित करेगा, और आप देखेंगे कि यह वास्तव में -सोर्स 1.5 पैरामीटर का उपयोग कर रहा है।

1

जैसा कि रो के उत्तर में कहा गया है कि आपको 1.5 कंपाइलर का उपयोग करने की आवश्यकता है क्योंकि जेडीके अपनी नौकरी बिल्कुल सही नहीं कर रहा है।

<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    <configuration> 
     <verbose>true</verbose> 
     <fork>true</fork> 
     <executable>${JAVA_1_5_HOME}/bin/javac</executable> 
     <compilerVersion>1.5</compilerVersion> 
    </configuration> 
    </plugin> 
    ... 
</plugins> 

इसके बाद आप अपनी परियोजना में संकलक या settings.xml

<properties> 
    <JAVA_1_5_HOME>/path/to/1.5jdk</JAVA_1_5_HOME> 
</properties> 
के लिए पथ निर्दिष्ट कर सकते हैं: यह उनका कहना है कि आप एक विशिष्ट संकलक का उपयोग करने के tweaking the maven-compiler-plugin विन्यास द्वारा रास्तों आदि के साथ के बारे में खिलवाड़ से बच सकते हैं लायक है
+0

अच्छा बिंदु भी। –

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