2012-03-19 15 views
6

मैं हाल ही में कुछ किसी भी त्रुटि के संकलन जब यह होना चाहिए (हमने सोचा) फेंकने के बिना हमारे तैनाती चक्र के माध्यम से यह कर रही कोड द्वारा डंक मार रहा था ...एक संस्करण नीचे संकलन - ग्रहण, Maven

प्रश्न में

कोड जा रहा है का उपयोग करते हुए नई स्थैतिक विधि Integer.compare जो जावा 1.7 के बाद से है।

सर्वर वातावरण जावा 1.6 पर चलाया जाता है। जबकि हमारे विकास वातावरण में जावा 1.7 स्थापित है।

हमारी धारणा यह थी कि परियोजना प्राथमिकताओं को जावाएसई-1.6 अनुपालन में सेट करना कम से कम हमें प्रश्न में कोड पर संकलन चेतावनी देगा, हालांकि ग्रहण में कोई चेतावनी या त्रुटि दिखाई नहीं दे रही है।

परियोजना> गुण> जावा संकलक> JDK के अनुपालन> निष्पादन वातावरण से जावा का निर्माण पथ

गौणतः कि करने के लिए

पर अनुपालन प्रयोग करें 'JavaSE-1.6', हम अंतिम तैनाती संकलित करने के लिए Maven का उपयोग करें। पोम को 1.6 संकलक का अनुपालन करने के लिए स्पष्ट रूप से निर्देशित किया गया है:

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

हालांकि मैवेन बिल्ड समस्या कोड के साथ सफलतापूर्वक चलता है।

मैं मैवेन और ग्रहण दोनों को कैसे विफल कर सकता हूं जब कोड पहले जेवीएम में संकलित नहीं होने पर काम नहीं करेगा?

धन्यवाद, पॉल।

+0

मुझे याद है कि मुझे पहले इसी तरह की स्थिति का सामना करना पड़ा है (लेकिन यह 1.5 बनाम 1.6 था) लेकिन उस समय यह आपके काम की अपेक्षा करता है। मुझे संदेह है कि जेडीके में कोई बग है जिसके कारण? –

उत्तर

2

जब आप पिछड़े संगत नहीं हैं तो एपीआई का उपयोग करते समय आपको बताए जाने के लिए मेवेन पशु स्निफ़र प्लगइन का उपयोग करें। मुझे यह भी बताया गया है कि जावा 1.7 के लिए इसकी सुविधा है, लेकिन मेरे पास इसका कोई व्यक्तिगत अनुभव नहीं है।

+0

यह बहुत अच्छा काम करता है, कम से कम मैं यह सुनिश्चित कर सकता हूं कि गलत कोड इसे तैनाती के लिए नहीं बनाता है। धन्यवाद। – pstanton

2

विकास पर्यावरण में जावा 1.6 स्थापित करें, फिर प्रोजेक्ट-> जावा बिल्ड पथ पर जाने के लिए ग्रहण में प्रोजेक्ट पर राइट क्लिक करें। पुस्तकालय टैब पर जाएं और जावा 1.7 जेआरई को हटा दें, फिर जावा 1.6 जेआरई जोड़ें।

मैं आधा जवाब देने के लिए मेवेन के साथ पर्याप्त परिचित नहीं हूं।

+0

जावा के पुराने संस्करणों को स्थापित किए बिना कोई रास्ता नहीं है? – pstanton

+0

जहां तक ​​मैं कह सकता हूं, हां। अनुपालन मेनू में जिस तरह से मैंने वर्णन किया है या अगला बॉक्स नीचे है, संकलक अनुपालन स्तर के लिए एक ड्रॉपडाउन है। यदि आप संकलक अनुपालन के लिए एक पुराना जावा चुनते हैं, तो यह सुनिश्चित करने के लिए कि आपका स्तर उस स्तर पर स्थापित है, नीचे एक संदेश दिखाई देता है। – Thomas

+0

हाँ मैंने देखा कि लेकिन इससे बचने की उम्मीद थी क्योंकि हमारे पास अलग-अलग आवश्यकताओं के साथ कुछ अलग परियोजनाएं हैं ... – pstanton

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