2012-05-21 15 views
25

मैं ग्रहण m2e का उपयोग कर किसी अन्य कार्यक्षेत्र प्रोजेक्ट का संदर्भ कैसे दे सकता हूं?ग्रहण m2e में, वर्कस्पेस प्रोजेक्ट का संदर्भ कैसे लें?

क्या मुझे परियोजना सेटिंग में एक परियोजना निर्भरता जोड़नी है? लेकिन उस मामले में निर्भरता पोम में दिखाई नहीं दे रही है।

यदि मैं उन्हें पोम में सेट करता हूं, तो यह कार्यक्षेत्र में प्रोजेक्ट का संदर्भ नहीं देगा बल्कि स्थानीय भंडार में जार का संदर्भ देगा। काफी परेशान, कोई भी मदद कर सकता है?

+2

पर एक नज़र आप सक्षम किया था "का समाधान करें कार्यस्थान परियोजनाओं से निर्भरता" Maven विन्यास में है? – Thomas

उत्तर

52

ऐसा करने का सही तरीका यह है:

  • उपयोग पोम फ़ाइल विशेष रूप से में निर्भरता अनुभाग, ग्रहण परियोजना के संदर्भ के साथ बेला नहीं है। प्रोजेक्ट पर राइट-क्लिक करें, फिर प्रोजेक्ट को मैवेन डिफ़ॉल्ट सेटिंग्स में रीसेट करने के लिए मेवेन> अद्यतन परियोजना कॉन्फ़िगरेशन का चयन करें। इस तरह, m2e निर्भरताओं का स्वामित्व है।
  • सुनिश्चित करें कि सभी संदर्भित परियोजनाएं एक्लिप्स में खुली हैं और मेवेन प्रकृति सक्षम है।
  • प्रत्येक परियोजना के लिए Maven सेटिंग्स की जाँच करें, यह सुनिश्चित करें कि ग्रुप, artifactId और संस्करण परियोजनाओं आप ग्रहण में खुला साथ मैच बनाते हैं। तो अगर परियोजना आप पर निर्भर ग्रहण में संस्करण 1.0.0-SNAPSHOT है, सुनिश्चित करें कि आधार परियोजना की पोम फ़ाइल संदर्भ संस्करण निर्भरता में 1.0.0-SNAPSHOT अनुभाग।
  • प्रत्येक परियोजना के लिए कार्यक्षेत्र संकल्प सक्षम करें। प्रोजेक्ट पर राइट-क्लिक करें, फिर मेवेन> वर्कस्पेस रेज़ोल्यूशन सक्षम करें।
  • अंत में, यदि परियोजनाओं अभी भी समाधान नहीं कर रहे हैं, परियोजना फिर से राइट-क्लिक करें, फिर Maven> अद्यतन परियोजना

यह आपकी समस्या का समाधान करना चाहिए। यदि इसके बाद, आपकी निर्भरताओं को अभी भी फ़ाइल सिस्टम से संदर्भित किया गया है, तो समूह आईडी, artifactId और विशेष रूप से संस्करण प्रत्येक निर्भरता के दोबारा जांचें।

यह भी जांचें कि क्या आपके पास अपनी परियोजना में कोई त्रुटि नहीं है - मेवेन इंस्टॉल चलाने का प्रयास करें।

+2

इससे मेरी मदद मिली, लेकिन संदर्भित परियोजनाओं को एक जार फ़ाइल की बजाय सामान्य फ़ोल्डर के रूप में तैनात किया गया है, क्या इसे बदलने का कोई तरीका है? – Khinsu

+1

में बहुत से धन्यवाद मुझे विपरीत समाधान की आवश्यकता थी (स्थानीय के भीतर जार रखना चाहता था रेपो प्रोजेक्ट संदर्भ पर प्राथमिकता लेते हैं) और "वर्कस्पेस रेज़ोल्यूशन" सुविधा को अक्षम करके मैं इसे पूरा करने में सक्षम था! सही दिशा में सूचक के लिए धन्यवाद ... –

+0

मूर्खतापूर्ण लगता है लेकिन 2 बिंदु के अलावा _ "सुनिश्चित करें कि सभी संदर्भित परियोजनाएं ग्रहण में खुली हैं और मेवेन प्रकृति सक्षम है" _: ** सुनिश्चित करें कि सभी संदर्भित परियोजनाएं ऊपर हैं तारीख**। यदि वर्कस्पेस रिज़ॉल्यूशन सही तरीके से काम करता है तो निर्भरता मेवेन पीओएम संपादक में जार आइकन की बजाय ग्रहण प्रोजेक्ट फ़ोल्डर आइकन के साथ दिखायी जाती है। – andy

4

मैं इससे भी आगे जाऊंगा। यदि आपके पास है तो अपनी परियोजना पर mvn eclipse:eclipse चलाएं तो आप शायद परेशानी में हैं। मेरे पास एक ऐसी स्थिति थी जहां मेरे पास "संदर्भित पुस्तकालय" अनुभाग और "मैवेन निर्भरता" खंडन लाइब्रेरी संस्करणों के साथ, ग्रहण प्रोजेक्ट में अनुभाग, ग्रहण और खुद को अपरिहार्य भ्रम के कारण दोनों था।

सबसे सुरक्षित बात मैंने पाया कमांड लाइन से mvn eclipse:clean चलाने के लिए फिर वापस में जाना ग्रहण करने के लिए, परियोजना ताज़ा करते हैं, "ठीक है" जिसके परिणामस्वरूप समस्या संवाद, और फिर जाना था Maven> अद्यतन परियोजना। यह सब मेरे लिए इसे हल किया।

3

जब ग्रहण कई परियोजनाओं को आयात और हटाने के साथ गड़बड़ हो जाता है, तो आपको मेवेन रिपॉजिटरीज के सूचकांक को पुनर्निर्माण करने की आवश्यकता हो सकती है। यहां एक तरीका है जो मैंने किया है।

  1. जांचें कि एक संदर्भित परियोजना को ग्रहण परियोजना के रूप में ठीक से एक मैवेन प्रोजेक्ट के रूप में पहचाना जाता है या नहीं।

    मेनू पट्टी में, क्लिक करें Window -> Show View -> Other...
    'दिखाएँ दृश्य' की पॉपअप विंडो खुलेगी करते हैं, का चयन Maven -> Maven Repositories
    Maven डेटा संग्रह स्थान विंडो में, आप Local Repositories -> Workspace Projects
    में जार फ़ाइल के रूप में अपनी परियोजना को देखना चाहिए आप में अपनी परियोजना बंद हो जाए तो Workspace Projects, Workspace Projects पर राइट क्लिक करें और Rebuild Index चुनें। एक संदर्भित परियोजना

    की

  2. अद्यतन Maven सही संदर्भित परियोजना पर क्लिक करें, Maven -> Update Project... -> OK

0

आप यह भी सुनिश्चित करें कि आप सही लक्ष्यों चल रहे हैं बनाने की जरूरत है।

यदि आप नहीं चलाते हैं तो लक्ष्य स्थापित करें, तो यह आपके भंडार में कॉपी नहीं किया जाएगा और संकलित नहीं होगा।

अधिक जानने के लिए लक्ष्यों के बारे में https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html

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