2010-11-25 17 views
6

मैंने अभी ग्रहण हेलीओस की एक नई नई स्थापना स्थापित की है और मैवेन की बाहरी (v 2.2.1) स्थापना का उपयोग करने के लिए M2Eclipse को कॉन्फ़िगर किया है।M2Eclipse एमवीएन कमांड लाइन नहीं होने पर गायब आर्टिफैक्ट के बारे में शिकायत क्यों करता है?

प्रणाली कमांड लाइन पर ठीक संकलित, लेकिन मेरी परियोजना मॉड्यूल के कई M2Eclipse भीतर एक त्रुटि है से:

Missing artifact javax.jms:jms:jar:1.1:test

मैं Atomikos निर्भरता से jms विरूपण साक्ष्य को बाहर निकालकर त्रुटि पिछले प्राप्त कर सकते हैं । लेकिन मेरा मुख्य सवाल यह है कि दोनों अलग-अलग परिणाम कैसे प्रदान कर सकते हैं!

और भी विचित्र यह है कि मेरे पास ग्रहण हेलीओस की एक और स्थापना है और सब कुछ ठीक काम करता है।

उत्तर

5

m2eclipse में निर्भरता रिज़ॉल्वर बाहरी मेवेन स्थापना का उपयोग नहीं कर रहा है, इसे एम्बेडेड मेवेन संस्करण का उपयोग करना है। इसलिए, मैं निर्भरता संकल्प में अंतर को कम करने के लिए m2eclipse का नवीनतम संस्करण, साथ ही मेवेन 3.x संस्करण प्राप्त करने की अनुशंसा करता हूं।

+0

तो M2Eclipse पहले से ही एम 3 का उपयोग कर रहा है? थोड़ा डरावना लगता है कि एम 2 और एम 3 विभिन्न निर्भरता प्रस्ताव प्रदान करते हैं .... यद्यपि सैकड़ों में से केवल 1 आर्टिफैक्ट पर। पारितोषिक के लिए धन्यवाद। – HDave

+2

समस्या यह है कि मेवेन 2.x कोर वास्तव में एम्बेड करने योग्य नहीं है। मेवेन 3.x आईडीई के अंदर आंतरिक घटकों को काम करने के लिए कई बदलावों को शामिल करता है। –

+0

मुझे एक ही समस्या का सामना करना पड़ा, और मैं मैवेन का नवीनतम संस्करण प्राप्त किए बिना इसके आसपास काम करने में सक्षम था। इसके बजाए, मैं वरीयताओं-> मेवेन-> इंस्टॉलेशन में गया और /Users/myName/.m2/settings.xml के साथ "एम्बेडेड इंस्टॉलेशन के लिए ग्लोबल सेटिंग्स" चिह्नित फ़ील्ड में भर गया ... यह मेरे लिए काम करता है क्योंकि मेरे पास स्थानीय नेक्सस है सर्वर जो कुछ परियोजना निर्भरताओं की सेवा करता है जो सार्वजनिक रूप से उपलब्ध नहीं हैं। – pohl

3

इसके अतिरिक्त, यह संभव है कि आपके पास आपके मैवेन 2.2.1 conf/settings.xml फ़ाइल में परिभाषित कुछ वैकल्पिक भंडार हों। यदि आप एम्बेडेड maven3 का उपयोग करते हैं तो इन्हें अनदेखा कर दिया जाएगा।

आप m2eclipse के लिए maven स्थापना के रूप में अपने maven 2.2.1 स्थापना को भी निर्दिष्ट कर सकते हैं।

+0

जैसा कि मैंने मूल पोस्ट में उल्लेख किया है, मेरे पास 2.2.1 इंस्टॉल है जो M2Eclipse के लिए बाहरी स्थापना के रूप में कॉन्फ़िगर किया गया है। ऊपर Kuleshov के अनुसार समस्या यह है कि M2Eclipse वैसे भी निर्भरताओं को हल करने के लिए अपने आंतरिक Maven3 का उपयोग करता है। – HDave

1

एक ही समस्या यहाँ पर एक अलग समाधान खोजने का तरीका देखें: मैं, Maven 2.2.1 का उपयोग स्थापना के रूप में ग्रहण से उपयोग करने के लिए के रूप में यह एक है जो कमांड लाइन पर काम करती है। मेवेन 3 इस ठोस परियोजना के लिए काम नहीं करता है, कुछ लापता निर्भरताओं के बारे में शिकायत करता है, जो कि मेरे मामले में पुराने मैवेन 1 लीगेसी लेआउट के साथ रिपोजिटरी से निकला है। मेवेन 3 इनसे नफरत करता है और जब उन्हें पाता है तो रोने में फट जाएगा।

तो मैवेन 2 कमांड लाइन पर ठीक काम करता है, लेकिन मैवेन 3 नहीं करता है। ग्रहण के साथ समस्या यह है कि यदि आप अपनी परियोजनाओं के निर्माण के लिए मैवेन 2 को इंस्टॉलेशन के रूप में निर्दिष्ट करते हैं, तो यह निर्भरता रिज़ॉल्यूशन के लिए मैवेन 3 (एम्बेडेड इंस्टॉलेशन) का उपयोग करता है, इसलिए यदि आप विरासत भंडार की आवश्यकता के लिए बहुत दुर्भाग्यपूर्ण हैं तो आप खराब हो जाते हैं (मेरा मतलब है ग्रहण मदद नहीं करेगा)।