2011-12-13 9 views
16

मेरे पास एक बहु-मॉड्यूल मेवेन प्रोजेक्ट है जो WAR ओवरले का उपयोग करता है (उनमें से 3 गहरे ढेर)। मैवेन में सबकुछ बढ़िया काम करता है, लेकिन मैं ग्रहण के भीतर से अपना युद्ध शुरू करने में असमर्थ हूं क्योंकि यह विभिन्न फाइलों को नहीं ढूंढने की शिकायत करता है।ग्रहण में मेवेन युद्ध ओवरले को कैसे संभालें?

मैं ग्रहण (और एक लॉन्चर) को कैसे कॉन्फ़िगर कर सकता हूं ताकि मैं अपने युद्ध को ग्रहण से पहले मैवेन इंस्टॉल किए बिना चला सकूं? मुझे यह जोड़ना चाहिए कि मेरी ग्रहण युद्ध परियोजनाएं गतिशील वेब परियोजनाएं नहीं हैं ... क्या मुझे ऐसा करने का एक हिस्सा है?

नोट: निम्नलिखित प्रश्न विषय पर छूते हैं, लेकिन उत्तर इंगित करता है कि आपको हमेशा मेवेन इंस्टॉल करना होगा और मुझे पता है कि यह सही नहीं हो सकता है क्योंकि ऐसे लोग हैं जो ग्रहण के बिना ग्रहण का उपयोग करते हैं।

Maven overlays and Eclipse

मैं भी इस जो मुझे लगता है कि यह वेनिला M2E के माध्यम से संभव नहीं है बनाता है मिल गया है:

http://jira.codehaus.org/browse/MNGECLIPSE-599

उत्तर

18

मैं यह पूरा करने में सक्षम था और सब कुछ अच्छा काम करता है। यहां क्या करना है:

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

के माध्यम से अलग से स्थापित किया जाना चाहिए अतीत में, ग्रहण और Maven के बीच एकीकरण कुछ हद तक कर दिया गया है परेशानी। हालांकि, यह नया ग्रहण आधारित मावेन एकीकरण अब इस तथ्य से अवगत है कि पीओएम फाइलों के भीतर कई मेवेन प्लगइन्स इस्तेमाल किए जाते हैं और कुछ प्लग-इन के केवल कुछ लक्ष्य आईडीई पर्यावरण के भीतर समझ में आते हैं। इसके अलावा, उन लक्ष्यों को जो आईडीई के अंदर चलते समय समझ में आता है, विशेष कॉन्फ़िगरेशन की आवश्यकता हो सकती है। इस एम 2 ई को सही ढंग से संभालने के लिए अब "कनेक्टर"

एम 2 ई में विशेष कनेक्टर की एक लंबी सूची है जो विभिन्न मोोजों (मेवेन प्लगइन लक्ष्यों) का आह्वान करते समय "सही बात" करने की अनुमति देती है। ग्रहण के भीतर उपलब्ध कनेक्टरों की सूची देखने के लिए प्राथमिकता संवाद पर जाएं और मेवेन-> दीकोवरी-> ओपन कैटलॉग का चयन करें। प्रोजेक्ट आयात के दौरान {{pom.xml}} फ़ाइल में पाए जाने पर इन कनेक्टरों को स्वचालित रूप से इंस्टॉल किया जाना चाहिए। हालांकि, इसके लिए एम 2 ई मेवेन आयात विज़ार्ड का सही संस्करण आवश्यक है (जो इंडिगो एसआर 2 तक नहीं है)।

इसके अलावा, कभी-कभी ये कनेक्टर छोटी हैं और हमें नवीनतम सुधार प्राप्त करने के लिए रात या बीटा अपडेट साइटों का उपयोग करने की आवश्यकता है। यदि आपके पास पुराना या बग्गी संस्करण है, तो आपको अपग्रेड करने के बाद परियोजनाओं को हटाने और पुनः आयात करने की आवश्यकता है। इन कारणों से, मेरी राय में, ग्रहण में अपनी परियोजना को आयात करने से पहले सभी एम 2 ई कनेक्टर हाथ से स्थापित किए जाने चाहिए।

एम 2 ई-डब्ल्यूटीपी कनेक्टर वह है जिसे आपको ग्रहण "सर्वर" के लिए एक्लिप्स लॉन्चर में युद्ध ओवरले करने की आवश्यकता है। इस कनेक्टर का उपयोग WTP के साथ मेवेन को एकीकृत करने के लिए किया जाता है ... और इस प्रकार WAR ओवरले, सर्वलेट कंटेनर सेटअप, ग्रहण WTP कॉन्फ़िगरेशन, रूट संदर्भ सेटिंग, और अन्य चीजें हैं जो सभी ग्रहण वेब टूलिंग "जस्ट वर्क" बनाने के लिए जाते हैं जब एक मैवेन वार्ड मॉड्यूल एक परियोजना के रूप में ग्रहण में आयात किया जाता है।

m2e-डब्ल्यूटीपी कनेक्टर के लिए अद्यतन स्थल है: http://download.jboss.org/jbosstools/updates/m2eclipse-wtp/

इस M2E-डब्ल्यूटीपी साइट जोड़ें और कनेक्टर स्थापित करें। हालांकि, ध्यान दें कि न तो एम 2 ई और न ही एम 2 ई-डब्ल्यूटीपी कनेक्टर अंतिम युद्ध में ओवरले डब्ल्यूएआर की निर्भरताओं को रखने जा रहे हैं। आपको अंतिम WAR pom.xml पर आवश्यक निर्भरताओं को जोड़कर ऐसा करना होगा। मुझे नहीं पता कि उपकरण ऐसा क्यों नहीं करते हैं, लेकिन वे नहीं करते हैं - तो बस इसे खत्म करें। ;-)

इस बिंदु पर, मैं {{Help-> अपडेट के लिए जांच}} के माध्यम से एक पूर्ण अपडेट करने की भी सिफारिश करता हूं। एक बार ऐसा करने के बाद, आपको बस एक ग्रहण सर्वर जोड़ने में सक्षम होना चाहिए, अपने प्रोजेक्ट पर क्लिक करें (ओवरले एक नहीं, लेकिन वे नियमित रूप से एक) और "सर्वर पर चलाएं ..." चुनें।

या तो WAR या ओवरले WAR में किए गए परिवर्तन स्वचालित रूप से आपके सर्वर पर प्रकाशित हो जाएंगे। जावास्क्रिप्ट परिवर्तन सर्वर को पुनरारंभ किए बिना प्रकाशित किए जाते हैं ... आपको बस इतना करना है कि नया कोड चलने के लिए ब्राउज़र में रीफ्रेश करें।

दूसरा अद्यतन: वहाँ एक बग (https://issues.sonatype.org/browse/MECLIPSEWTP-174) M2E में जो वेब-INF/lib निर्देशिका गलती से अपने सभी जार फ़ाइलों को खोने में परिणाम कर सकते है। जब ऐसा होता है, तो आपका सर्वलेट आवेदन स्पष्ट रूप से शुरू नहीं होगा। वर्कअराउंड सर्वर पर दायाँ क्लिक करके सर्वर को साफ़ करना और "साफ" चुनना है। ध्यान दें कि अकेले कार्य निर्देशिका की सफाई इन लापता जेएआर को पुनर्स्थापित नहीं करेगी।

+0

खुशी मुझे यह जवाब मिला। लेकिन यह मेरे लिए काम नहीं करता है। मैंने एक बहुत ही सरल मामला की कोशिश की: सरल युद्ध परियोजना ए, सरल युद्ध परियोजना बी, और पोम ए एक निर्भरता के रूप में युद्ध बी घोषित करता है, लेकिन वास्तव में बी से किसी भी वर्ग का उपयोग नहीं करता है - उस मामले में 'एमवीएन इंस्टॉल' सफलतापूर्वक चलता है, ओवरले प्रोजेक्ट बी ने उम्मीद के अनुसार युद्ध ए में जोड़ा। लेकिन अगर मैं प्रोजेक्ट ए में बी से किसी वर्ग के संदर्भ में जोड़ता हूं, तो मुझे दो समस्याएं दिखाई देती हैं: (1) ग्रहण बी (2) 'एमवीएन इंस्टॉल' (ग्रहण से या कमांड लाइन से) के वर्ग के संदर्भ को हल नहीं कर सकता है कोड ए में हर जगह संकलन त्रुटि के साथ जहां मैं बी – rapt

+1

से कक्षा को संदर्भित करता हूं, जैसा कि आपने सुझाव दिया है कनेक्टर को स्थापित करना इन समस्याओं को हल नहीं करता है। मुझे यहां क्या समझ नहीं आ रहा है? – rapt

+0

"हालांकि, ध्यान दें कि न तो एम 2 ई और न ही एम 2 ई-डब्ल्यूटीपी कनेक्टर अंतिम युद्ध में ओवरले डब्ल्यूएआर की निर्भरताओं को रखने जा रहे हैं।" मुझे यह सही समस्या है, क्या आप किसी अन्य काम को आसपास जानते हैं। आपके द्वारा प्रदान किया गया कोई भी मेरे मामले पर काम नहीं करेगा। – Hoffmann

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