मौजूदा ग्रहण परियोजना को मावेन परियोजना में परिवर्तित करें


246

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

मेरा सवाल है, क्या मावेन प्लगइन का उपयोग करके मौजूदा एक्लिप्स जावा परियोजना को मावेन परियोजना में परिवर्तित करने के लिए एक विज़ार्ड या स्वचालित आयातक है? या मुझे एक नया मावेन प्रोजेक्ट बनाना चाहिए और मैन्युअल रूप से सभी स्रोत फ़ाइलों, लिबास आदि पर कॉपी करना चाहिए।


3
क्या आपकी मौजूदा बिल्ड एक चींटी स्क्रिप्ट का उपयोग करती है?
मैट बी

4
आपको संभवतः स्वीकृत उत्तर स्विच करना चाहिए
Mr_and_Mrs_D

जवाबों:


141

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

इस डिफ़ॉल्ट pom.xml को जोड़ने के लिए m2eclipse प्लगइन एक प्रोजेक्ट पर राइट-क्लिक का विकल्प प्रदान करता है:

नए M2E संस्करण

प्रोजेक्ट पर राइट क्लिक करें -> सबमेनू कॉन्फ़िगर करें -> मेवेन प्रोजेक्ट में कनवर्ट करें

पुराने M2E संस्करण

प्रोजेक्ट पर राइट क्लिक करें -> सबमेनू मावेन -> डिपेंडेंसी मैनेजमेंट सक्षम करें।

उस परियोजना के लिए प्लगइन को सक्षम करने के लिए यह आवश्यक होगा।


उत्तर देने के लिए ' क्या कोई स्वचालित आयातक या जादूगर है? ': मेरी जानकारी में नहीं। उपरोक्त विकल्प का उपयोग करने से आप मैन्युअल कॉपी से बचने के लिए अपने मौजूदा प्रोजेक्ट के लिए m2eclipse प्लगइन को सक्षम कर सकते हैं। आपको अभी भी वास्तव में निर्भरता और अन्य सामान सेट करने की आवश्यकता होगी जो आपको स्वयं बनाने की आवश्यकता है।


यद्यपि यह M2Eclipse को सक्षम करता है, यह वास्तव में एक विज़ार्ड नहीं है, यह एक मौजूदा ग्रहण परियोजना को आयात नहीं करता है। बल्कि, यह उपयोगकर्ता को निर्भरता, आदि का चयन करने का एक विकल्प देता है, जो उपयोगकर्ता के मावेन के साथ अधिक अनुभव नहीं होने पर मुश्किल हो सकता है।
कालेब पेडरसन

मैंने प्रश्न की व्याख्या की 'क्या मुझे एक नई परियोजना बनाने की आवश्यकता है और मैन्युअल रूप से m2eclipse प्लगइन का उपयोग करने के लिए सामान की प्रतिलिपि बनाएँ?', मैं स्पष्ट करूँगा।
ब्रेबस्टर

16
मावेन मेनू आइटम मेरे लिए राइट क्लिक मेनू (नवीनतम m2eclipse) से उपलब्ध नहीं है, चेंग्दोंग का उत्तर काम करता है।
wulfgarpro

8
ग्रहण के मौजूदा संस्करण (4.2) और m2eclipse पर मेनू आइटम कन्वर्ट / मावेन प्रोजेक्ट में कनवर्ट करें।
जेस्पर

12
@ जैस्पर मेन्यू आइटम "कॉन्फ़िगर / कन्वर्ट टू
मेवन

293

एम 2 0.13.0 से शुरू करें (यदि पहले से नहीं), तो आप संदर्भ मेनू से जावा परियोजना को मावेन परियोजना में बदल सकते हैं। यहां कैसे:

  • संदर्भ मेनू पॉप अप करने के लिए जावा प्रोजेक्ट पर राइट क्लिक करें
  • कॉन्फ़िगर करें > मावेन प्रोजेक्ट में कनवर्ट करें चुनें

यहाँ स्क्रीन शॉट्स के साथ विस्तृत कदम है


30
यह अभी भी निर्देशिका संरचना नहीं बनाता है और पोम में निर्भरता जोड़ता है।
क्लॉस नजी जूल

2
क्या m2e अभी भी मावेन डायरेक्टरी स्ट्रक्चर नहीं बनाता है और पोम में निर्भरता जोड़ता है?
Mr_and_Mrs_D

2
मेरा समाधान (@ShriKant Vashishtha) नीचे वर्णित सभी समस्याओं को हल करता है। Maven संरचना बनाता है, फ़ोल्डर नामों में रिक्त स्थान निकालता है, pom.xml बनाता है और Maven संरचना में स्रोत फ़ोल्डर बनाता है
ShriKant Vashishtha

उस समय विंडोज 10 ग्रहण मंगल पर पूर्ण और निर्दोष काम करता है।
मथिस कोहली

यह मेरे लिए एकदम सही काम करता है
साक्षी

12

मैं एक ही मुद्दा रहा था और लगभग 60 ग्रहण परियोजनाओं वाले पूरे ग्रहण कार्यक्षेत्र को Mavenise करना चाहता था। ऐसा करना मैन्युअल रूप से बहुत समय की आवश्यकता है और वैकल्पिक विकल्प उस व्यवहार्य नहीं थे। इस मुद्दे को हल करने के लिए मैंने आखिरकार गितुब पर ग्रहण-से-मावेन नामक एक परियोजना बनाई । चूंकि ग्रहण में निर्भरताओं के बारे में सभी आवश्यक जानकारी नहीं है, यह निम्न कार्य करता है:

  • <classpathentry/>.Classpath फ़ाइल में XML तत्वों के आधार पर , यह किसी अन्य प्रोजेक्ट पर निर्भरता बनाता है, लाइब्रेरी जार फ़ाइल की पहचान करता है और इसके नाम पर आधारित (उदाहरण के लिए jakarta-oro-2.0.8.jar) इसके संस्करण की पहचान करता है। वर्तमान में artifactIdऔरgroupId जैसा कि मुझे कुछ नहीं मिल रहा है, जो मुझे निर्भरता के मावेन समूह को वापस कर सकता है artifactId। हालांकि यह एक सही समाधान नहीं है, लेकिन यह मेवेनिसेशन को गति देने के लिए एक अच्छा मैदान प्रदान करता है।

  • यह मावेन सम्मेलन (जैसे) के अनुसार सभी स्रोत फ़ोल्डर को स्थानांतरित करता है src/main/java ) के

  • जैसा कि रिक्त स्थान वाले नाम के प्रोजेक्ट्स में लिनक्स / यूनिक्स पर्यावरण पर डील करना मुश्किल होता है, यह उन्हें बिना नाम के रिक्त स्थान के नाम के साथ बदल देता है।

  • परिणामी pom.xml फ़ाइलों में निर्भरताएँ और मूल pom संरचना होती है। आपको आवश्यक मावेन प्लगइन्स को मैन्युअल रूप से जोड़ना होगा।


दिलचस्प है! क्या इसे लूना में पोर्ट किया गया है? क्या परियोजना अभी भी एक ग्रहण परियोजना (वैध .classpathऔर .projectफाइलें) होगी? क्या आप अपने जवाब को जोड़ सकते हैं कि एक सरल जावाएसई परियोजना को मवनीज़ करने के लिए अपने प्लगइन का उपयोग कैसे करें - और निर्देशिका संरचना में वास्तविक परिवर्तन क्या होंगे?
Mr_and_Mrs_D

क्षमा करें, लेकिन मुझे नहीं पता कि लूना क्या है। यह अब मान्य परियोजना नहीं होगी क्योंकि परियोजना निर्देशिका संरचना बदल जाती है। हालांकि मावेन का उपयोग करके संशोधित ग्रहण विन्यास बनाना आसान है। यह एक प्लगइन नहीं बल्कि एक टूल है। इसे कैसे चलाया जाए, इसका उल्लेख परियोजना के आरईएडीएमई में पहले से ही है। निर्देशिका संरचना मावेन सम्मेलन में परिवर्तित हो जाती है। इसलिए सभी स्रोत उदाहरण के लिए src / main / java पर जाते हैं।
श्रीकांत वशिष्ठ

लूना ग्रहण का नवीनतम संस्करण है !!
Mr_and_Mrs_D

7

प्रोजेक्ट के नाम पर राइट क्लिक करें> कॉन्फ़िगर करें> मावेन प्रोजेक्ट में कनवर्ट करें> फिनिश पर क्लिक करें। यहां आप अपनी अपेक्षित जार फ़ाइल को डाउनलोड करने और जोड़ने के लिए कुछ निर्भरताएँ जोड़ेंगे।

यह एक ऑटो-जनरेटेड pom.xml फ़ाइल बनाएगा। अपने ग्रहण संपादक में xml प्रारूप में उस फ़ाइल को खोलें। बिल्ड टैग ( </build>) के बाद अपनी निर्भरताएं जोड़ें जो आप मावेन वेबसाइट से कॉपी कर सकते हैं और उन्हें वहां जोड़ सकते हैं। अब आप जाने के लिए अच्छे हैं। ये निर्भरताएँ आपकी आवश्यक जार फ़ाइलों को स्वचालित रूप से जोड़ देंगी।


1
क्या यह मैवेन फ़ोल्डर संरचना बनाएगा?
Mr_and_Mrs_D

हां, यह उपयुक्त मैप्ड आर्कएप्टाइप टेम्पलेट और न्यूनतम कॉन्फ़िगरेशन के आधार पर मावेन फ़ोल्डर संरचना बनाएगा। आपको अपने प्रत्येक प्रोजेक्ट निर्भरता (.classpath से) को POM.xml में स्वयं एक समय में मैन्युअल रूप से जोड़ना है।
प्रताप सिंह

5

चेंगडोंग का जवाब सही है, आपको उपयोग करना चाहिए Configure>Convert to Maven Project। हालाँकि, मुझे जोड़ना चाहिए कि रूपांतरण प्रक्रिया को m2e 0.13.0 से बहुत सुधार दिया गया है: m2e 1.1+ और m2e-wtp 0.16.0+ अब मौजूदा ग्रहण सेटिंग्स को maven plugin कॉन्फ़िगरेशन में बदल सकते हैं ।

निर्भरता रूपांतरण मामले के लिए, आप JBoss टूल्स (JBT) 4.0 मावेन एकीकरण सुविधा की कोशिश कर सकते हैं, जिसमें एक प्रायोगिक रूपांतरण विज़ार्ड है, जिसे m2e की रूपांतरण प्रक्रिया में प्लग किया गया है: http://docs.jboss.org/tools/bhatsnew/maven/ Maven-खबर-4.0.0.Beta1.html

यह अंतिम समाधान (कुछ भी नहीं) होने का दिखावा नहीं करता है, हो सकता है कि यह आपके मैवेन रूपांतरण प्रक्रिया को बूटस्ट्रैप करने में बहुत मदद करे।

इसके अलावा, एफवाईआई , यहां एम 2 की रूपांतरण प्रक्रिया को बढ़ाने के लिए कुछ विचार दिए गए हैं , मावेन लेआउट का उपयोग करने के लिए रिफैक्टिंग को संभवतः भविष्य में लागू किया जाएगा।

JBT 4.0 (ग्रहण JavaEE जूनो की आवश्यकता है) http://download.jboss.org/jbosstools/updates/stable/juno/ या ग्रहण बाज़ार से स्थापित किया जा सकता है


4

यह आवश्यक है क्योंकि, कम या ज्यादा, जब हम एक परियोजना को git से आयात करते हैं, तो यह एक मावेन परियोजना नहीं होती है, इसलिए मावेन निर्भरताएं बिल्ड पथ में नहीं होती हैं।

यहाँ मैंने एक सामान्य परियोजना को मावेन परियोजना में बदलने के लिए किया है।

सामान्य परियोजना -> जावा परियोजना सही परियोजना पर क्लिक करें, गुण-> परियोजना पहलू, "जावा" पर क्लिक करें। यह कदम एक सामान्य परियोजना को जावा परियोजना में बदल देगा।

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

और कुछ सेकंड प्रतीक्षा करें, जब निर्भरताएं भरी हुई हैं, तो परियोजना तैयार है!


2

किसी भी Java प्रोजेक्ट को SBT / Maven प्रोजेक्ट में बदलने के लिए कमांड लाइन प्रोग्राम है।

यह सभी जार को हल करता है और SHA चेकसम, क्लासपैथ या फ़ाइलनाम के आधार पर सही संस्करण का पता लगाने की कोशिश करता है। तब यह स्रोतों को संकलित करने की कोशिश करता है जब तक कि यह एक कार्यशील कॉन्फ़िगरेशन नहीं पाता है। प्रति निर्भरता कॉन्फ़िगरेशन को निष्पादित करने के लिए कस्टम कार्य भी दिए जा सकते हैं।

UniversalResolver 1.0
Usage: UniversalResolver [options]

  -s <srcpath1>,<srcpath2>... | --srcPaths <srcpath1>,<srcpath2>...
        required src paths to include
  -j <jar1>,<jar2>... | --jars <jar1>,<jar2>...
        required jars/jar paths to include
  -t /path/To/Dir | --testDirectory /path/To/Dir
        required directory where test configurations will be stored
  -a <task1>,<task2>... | --sbt-tasks <task1>,<task2>...
        SBT Tasks to be executed. i.e. compile
  -d /path/To/dependencyFile.json | --dependencyFile /path/To/dependencyFile.json
        optional file where the dependency buffer will be stored
  -l | --search
        load and search dependencies from remote repositories
  -g | --generateConfigurations
        generate dependency configurations
  -c <value> | --findByNameCount <value>
        number of dependencies to resolve by class name per jar

https://bitbucket.org/mnyx/universalresolver


यह एक बहुत ही आकर्षक विकल्प की तरह दिखता है। लेकिन, जैसा कि वर्तमान में पैक किया गया है, यह बहुत सुलभ नहीं है। यह स्पष्ट नहीं है कि कैसे source.code को पैकेज और तैनात किया जाए। अधिकांश जावा डेवलपर्स स्काला डेवलपर्स नहीं हैं, न ही एसबीटी समुदाय के भीतर व्यापक रूप से उपयोग किया जाने वाला उपकरण है।
ए। रिक

1

मेरा सवाल है, क्या मावेन प्लगइन का उपयोग करके मौजूदा एक्लिप्स जावा परियोजना को मावेन परियोजना में परिवर्तित करने के लिए एक विज़ार्ड या स्वचालित आयातक है?

जहां तक ​​मुझे पता है, ऐसा कुछ भी नहीं है जो एक ग्रहण परियोजना को स्वचालित रूप से एक मावेन परियोजना में बदल देगा (यानी लेआउट को संशोधित करें, एक पीओएम बनाएं, "उत्पन्न करें" और इसे मेटाडेटा के साथ फ़ीड करें, पुस्तकालयों और उनके संस्करणों का पता लगाने के लिए उन्हें पोम में जोड़ें। , आदि)। ग्रहण के पास यह संभव करने के लिए पर्याप्त मेटाडेटा नहीं है (यह ठीक पीओएम का बिंदु है) और / या एक सभ्य परिणाम उत्पन्न करने के लिए।

या मुझे एक नया मावेन प्रोजेक्ट बनाना चाहिए और मैन्युअल रूप से सभी स्रोत फ़ाइलों, libs आदि पर कॉपी करना चाहिए

मेरी राय में यह सबसे अच्छा विकल्प होगा। एक Maven प्रोजेक्ट बनाएं, स्रोतों, संसाधनों, परीक्षणों, परीक्षण संसाधनों को उनकी संबंधित निर्देशिकाओं में कॉपी / मूव करें, निर्भरताएं घोषित करें , आदि।


यह उत्तर +199 उत्तर से अधिक क्यों है? मैं लगभग नहीं देखा कि एक
Evorlor

1

ग्रेडल में परिवर्तित करने के लिए मावेन के अनुरूप है:

प्रोजेक्ट पर राइट क्लिक करें -> सबमेनू कॉन्फिगर -> ग्रैडल (एसटीएस) प्रोजेक्ट में कनवर्ट करें


4
इस सवाल का जवाब प्रासंगिक नहीं है
रिपन अल वसीम

1
मुझे यह प्रश्न ग्रैडल की तलाश में मिला, कई बार यह पूछे गए ओएस के बजाय अन्य ओएस के लिए उत्तर जोड़ने के लिए सहायक होता है क्योंकि यह व्यक्तिगत मामले के लिए एक प्रश्न नहीं होता है। ग्रैडल के बारे में, मैं जवाब देने के लिए एक नया प्रश्न नहीं बनाऊंगा कि मैं क्या सहायक मानता हूं, बल्कि मैं यह पोस्ट करता हूं। सादर धन्यवाद।
एक और
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.