2012-03-14 9 views
19

में साफ होने तक त्रुटियों को दिखाने के लिए हमें हमारे विकास वातावरण में बहुत अजीब व्यवहार मिल रहा है जो हमारे सभी डेवलपर्स के साथ संगत है, देव विभिन्न ऑपरेटिंग सिस्टम पर हैं।मैवेन क्लीन + बिल्ड ग्रहण में प्रोजेक्ट का कारण बनता है जब तक ग्रहण

हमारे पास विकास पर्यावरण में लगभग 20+ मेवेन (3.0.4) परियोजनाएं हैं, उनमें से सभी सामान्य रूप से सोनाटाइप एम 2 (0.12.0) हैंडलिंग निर्भरताओं के साथ एक्लिप्स (इंडिगो) में खुली परियोजनाएं हैं। (m2e 1.0 हमें समाधानों से अधिक समस्याएं पैदा कर रहा है)

हमारी सभी 20+ परियोजनाओं में से एक परियोजना है जो अजीब अभिनय कर रही है। उस परियोजना पर "mvn clean install" निष्पादित करते समय, मैवेन सफलतापूर्वक पास करता है, यह ग्रहण में त्रुटियों को दिखाने के लिए 4 जावा फ़ाइलों (यूनिट परीक्षणों में, यदि यह कोई फर्क पड़ता है) का कारण बनता है।

"SomeNameOfClass cannot be resolved to a type" प्रकृति की त्रुटियां हालांकि फ़ाइल खोलना और गलत वर्ग संदर्भ पर F3 (ओपन घोषणा) दबाकर समस्या को बिना किसी समस्या के कक्षा मिलती है।

"mvn clean" समस्या है, अगर हम अभी "mvn install" चलाते हैं तो ऐसा नहीं होता है।

ग्रहण की परियोजना-> साफ त्रुटियों को साफ़ करता है और सबकुछ ठीक है।

यह नहीं एक संचालन समस्या यह है कि वास्तव में मुझे काम करने या ऐसा कुछ करने से रोकता है है, मैं इसे बस ग्रहण में सफाई से हल कर सकते हैं, मैं सिर्फ कर नफरत है कि हर बार और मैं लाल Xs बर्दाश्त नहीं कर सकता मेरी परियोजनाओं में भी अगर उनके पास कोई प्रभाव नहीं पड़ता है।

मैं वास्तव में वास्तव में उत्सुक हूं कि यह क्यों हो रहा है, विशेष रूप से उन 4 कक्षाओं क्यों? क्यों क्यों क्यों? :)

धन्यवाद

+0

क्या आप उन परीक्षण कक्षाओं के बारे में अधिक सटीकता दे सकते हैं? क्या ऐसे अन्य परीक्षा वर्ग हैं जो अपेक्षित व्यवहार करते हैं? क्या उनके पास एक विशिष्ट पथ है? –

+0

जैसा कि आपको बताया गया है कि आपको अधिक जानकारी देनी चाहिए..क्या वे फाइलें उत्पन्न हुई हैं? – khmarbaise

+0

फ़ाइलें नियमित जावा फाइलें हैं, जेनरेट नहीं की गईं। वे टेस्ट के साथ चिपक गए हैं और कुछ तरीकों को शामिल किया गया है जो @Test के साथ सामान्य जुनीट कक्षाओं के रूप में एनोटेटेड हैं .. जिस संदर्भ को संदर्भित किया गया है उसे 'प्रकार के लिए हल नहीं किया जा सकता है' सार – Enrico

उत्तर

20

हमें थोड़ी देर पहले एक ही समस्या थी। हमारे पास एक ही तरह की त्रुटि देने वाली 20 से अधिक परियोजनाएं थीं। हमने जांच की, हमने निष्कर्ष निकाला कि जब maven clean install चलाया जाता है, ग्रहण कक्षा फाइलों का ट्रैक खो देता है और सोचता है कि उनमें से कुछ अपरिभाषित हैं। समाधान हम था कमांड लाइन पर निम्न जारी करने के लिए है:

mvn eclipse:clean 
mvn clean install 
mvn eclipse:eclipse 
+5

यदि m2e या m2eclipse का उपयोग किया जाता है mvn ग्रहण: ... अब और उपयोग नहीं किया जाना चाहिए। मेवेन - संदर्भ मेनू में अद्यतन-परियोजना-कॉन्फ़िगरेशन करना बेहतर तरीका होगा। – khmarbaise

+1

@GETah जबकि आप जो सुझाव दे रहे हैं वह त्रुटियों को हटा देता है, यह प्रोजेक्ट और क्लासपाथ को खराब करता है। वे फ़ाइलें हमारे स्रोत नियंत्रण में हैं और उन्हें प्रत्येक निर्माण पर बदलना एक अच्छा विकल्प नहीं है। मुझे लगता है कि मैं ऐसा कर सकता हूं और सबकुछ 'गिट चेकआउट - .project' और' गिट चेकआउट - .classpath' करने के बाद करता है लेकिन यह थोड़ा बोझिल लगता है। – Enrico

+7

@ एनीरिको मुझे लगता है कि संस्करण नियंत्रण के तहत ग्रहण सेटिंग्स रखना एक अच्छा विचार नहीं है। आपको स्रोत स्रोत के तहत केवल अपने स्रोत कोड को पोम फ़ाइलों के साथ ही रखना चाहिए। – GETah

0

यह अब है कि परियोजना (रों) Run configuration में Refresh टैब के अंतर्गत पूरा होने पर एक ताज़ा की जरूरत है निर्दिष्ट करने के लिए संभव है। आपको Refresh resources upon completion जांचना होगा और नीचे कौन सा व्यवहार चुनें।

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