2013-06-07 4 views
14

मेरे पास जटिल मेवेन प्रोजेक्ट है, जिसमें पैरेंट pom.xml और उपप्रोजेक्ट्स के लिए कुछ उपफोल्डर्स के साथ एक मूल फ़ोल्डर है, प्रत्येक के अपने pom.xml के साथ।ग्रहण परियोजनाओं को ग्रहण करने के लिए कितनी अच्छी तरह से आयात करें?

जब मैं एक एसवीएन रिपोजिटरी 'एवे मेवेन प्रोजेक्ट्स' से मूल फ़ोल्डर को चेकआउट करता हूं, तो यह कार्यक्षेत्र में प्रत्येक अलग परियोजना के रूप में सही ढंग से दिखाई देता है।

लेकिन अब मैंने परियोजना की अन्य शाखा से मूल फ़ोल्डर का चेकआउट किया है। मैं इस वर्डप्रेस फ़ोल्डर को मौजूदा वर्कस्पेस में उसी तरह जोड़ना चाहता हूं। तो मैं सिर्फ Import > Maven project का चयन करता हूं, एसवीएन से देय चेकआउट के रूप में एक ही संवाद प्राप्त करें, ग्रहण उचित पदानुक्रम के साथ सभी पोम फाइलें पाता है और मुझे अन्य नाम को मूल परियोजना के लिए कहता है, क्योंकि वही नाम alredy मौजूद है (प्रोजेक्ट का ट्रंक संस्करण), मैं इसे देता हूं अन्य नाम। लेकिन आयात के बाद मुझे ग्रहण में मैवेन प्रोजेक्ट के रूप में केवल मूल फ़ोल्डर मिलता है, अन्य सभी सबप्रोजेक्ट्स मूल उपरोक्त के रूप में मूल प्रोजेक्ट के तहत स्थित होते हैं।

तो, मैं इस तरह के प्रोजेक्ट को उचित रूप से कैसे आयात कर सकता हूं? मैं बस सभी सबप्रोजेक्ट्स को मेवेन प्रोजेक्ट्स के रूप में भी बनाना चाहता हूं।

+0

मैंने इस तरह के प्रोजेक्ट के नए ब्रैच को केवल नए वर्कस्पेस में जोड़ने में कामयाब रहा, अन्य सभी तरीकों से मेरे लिए काम नहीं हुआ। – sphinks

+0

मैं इस लड़ाई में जीतने की कोशिश करना बंद कर देता हूं, प्रत्येक शाखा के लिए अलग वर्कस्पेस का उपयोग करना शुरू करता हूं। – sphinks

उत्तर

0

मुझे लगता है कि कुछ कार्यक्षेत्र समस्या हो सकती है। आपने प्रोजेक्ट को वर्कस्पेस में ही जांच लिया होगा (इसके लिए क्षमा न करें)। आप क्या कर सकते हैं, किसी अन्य ड्राइव में अपनी परियोजना की जांच करने का प्रयास करें और फिर मूल परियोजना आयात करें। आप फिर से पदानुक्रमित तरीके से गठबंधन सभी पीओएम देखेंगे और फिर मुझे लगता है कि, आपको मूल परियोजना के लिए नाम दर्ज करने के लिए नहीं कहा जाएगा और यह चाल करेगा।

+0

नहीं, मैं प्रोजेक्ट नाम में प्रोजेक्ट नाम दर्ज कर रहा हूं, उसी नाम के साथ पहले से ही वर्कस्पेस में है। इसलिए फ़ोल्डर का स्थान बदलना मुझे एक ही नाम के साथ एक और परियोजना बनाने की अनुमति नहीं दे सकता है। – sphinks

+0

जो मैंने कहा था, आपको संकेत दिया जा रहा है क्योंकि कार्यक्षेत्र में प्रोजेक्ट पहले से मौजूद है। एक नया वर्कस्पेस बनाने का प्रयास करें और फिर उस प्रोजेक्ट को आयात करें जिसे आपने चेक आउट किया है (कुछ अन्य निर्देशिका में हो सकता है) –

+0

क्या आपका मतलब वर्कस्पेस को अलग करने के लिए अन्य शाखा से चेकआउट संस्करण है? – sphinks

9

ग्रहण ट्रंक और शाखा से आपके मामले में एक से अधिक बार एक परियोजना को आयात करने की अनुमति नहीं देता है। This article दिखाता है कि आप इस सीमा को कस्टम मैवेन प्रोफाइल के साथ कैसे बाईपास कर सकते हैं। मूल रूप से, कदम हैं:

  1. अपने माता पिता pom.xml

    <profiles> 
        <!-- Specific profile used to append a string to project name --> 
        <profile> 
        <id>append-to-project-name</id> 
        <activation> 
         <property> 
         <name>append.to.project.name</name> 
         </property> 
        </activation> 
        <build> 
         <plugins> 
         <plugin> 
          <artifactId>maven-eclipse-plugin</artifactId> 
          <configuration> 
          <projectNameTemplate> 
           [artifactId]-${append.to.project.name} 
          </projectNameTemplate> 
          </configuration> 
         </plugin> 
         </plugins> 
        </build> 
        </profile> 
    </profiles> 
    
  2. के लिए निम्न प्रोफ़ाइल जोड़ें ग्रहण करने के लिए परियोजना आयात करने से पहले, Maven परियोजना सेटिंग्स उत्पन्न करते हैं:

    mvn ग्रहण: eclipse -Dappend.to.project.name = [आपकी शाखा-नाम]

  3. प्रोजेक्ट को मौजूदा प्रो के रूप में ग्रहण करने के लिए आयात करें जेक्ट (एक मेवेन प्रोजेक्ट नहीं)।

यह नामकरण समस्या को हल करना चाहिए।


बच्चे परियोजनाओं के आयात के लिए के रूप में: मैं भी बच्चा उप के साथ एक माता पिता Maven परियोजना है और Ecplise के लिए m2e प्लगइन का उपयोग। जब मैं Import > Existing Maven Project का चयन करता हूं, तो मैं माता-पिता और बच्चों दोनों की जांच कर सकता हूं। आयात के बाद, मेरे पास दोनों मूल परियोजनाएं हैं और प्रत्येक बच्चे स्वतंत्र रूप से आयात किया जाता है। स्क्रीन:

project import imported projects

तो मैं इस ऊपर नामकरण समाधान आपकी समस्या का समाधान करना चाहिए के साथ संयुक्त की उम्मीद है।

+0

बाल परियोजनाओं के आयात के बारे में। यह पूरी तरह से काम करता है जैसा आपने चेकआउट पर मेवेन प्रोजेक्ट के रूप में वर्णित किया है, लेकिन ग्रहण में एक ही संवाद विंडो के साथ मौजूदा प्रोजेक्ट को आयात करने पर यह ठीक तरह से काम नहीं करता है। – sphinks

+0

@sphinks और क्या आपने नाम बदलने के साथ चाल की कोशिश की है? – Mifeet

+0

हां, लेकिन जैसा कि मैंने उम्मीद की थी, यह काम नहीं करता था। – sphinks

0

मैवेन प्रोजेक्ट्स के रूप में जांच की गई परियोजनाओं को हटाएं, फिर मूल परियोजना को देखें (मैवेन प्रोजेक्ट के रूप में नहीं), फिर मौजूदा मैवेन प्रोजेक्ट के रूप में बाल मॉड्यूल आयात करें। सुनिश्चित करें कि वे मूल पीओएम में बाल मॉड्यूल के रूप में सूचीबद्ध हैं।

+0

सभी बच्चों के मॉड्यूल को एक-एक करके आयात करने का अच्छा समाधान नहीं है। लगभग 30 मॉड्यूल हैं। आयात करने के लिए हमें मैन्युअल रूप से ऐसा क्यों करना चाहिए यदि आयात माता-पिता प्रोजेक्ट/ – sphinks

+0

आयात करते समय ऑटो मोड में ऐसा करना चाहिए, मेरे मौजूदा मॉडवे प्रोजेक्ट डायलॉग आयात करने का मतलब है, आप मूल परियोजना की निर्देशिका को ब्राउज़ करते हैं और फिर आयात करने के लिए सभी पीओएम का चयन करते हैं । – thSoft

+0

यह बेहद उत्साहजनक है कि मैं कैसे कर रहा हूं। स्कैनिंग पैरेंट फ़ोल्डर आयात करने के लिए सभी पोम का चयन करें। – sphinks

3

एक एससीएम से जटिल आयात करने (या वास्तव में किसी भी) Maven परियोजनाओं (यह हो SVN, Git या किसी अन्य SCM) मैं निम्नलिखित दृष्टिकोण का उपयोग के लिए:

फ़ाइल> आयात> की जाँच करें Maven परियोजनाओं से एससीएम

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

आपको एड-ऑन इंस्टॉल करना पड़ सकता है ताकि m2eclipse आपकी पसंद के एससीएम तक पहुंच सके।

+0

मैंने अभी लिखा है कि मुझे पहले से मौजूद प्रोजेक्ट आयात करने की आवश्यकता है, इसे svn से चेकआउट न करें। Svn से अलग-अलग ब्रैच स्वचालित रूप से वर्कस्पेस फ़ोल्डर (हार्ड के दूसरे फ़ोल्डर में एक शाखा) में हार्ड ड्राइव पर कुछ गड़बड़ बनाते हैं। इसलिए मैं बस अपने ही फ़ोल्डर में प्रत्येक शाखा को चेकआउट करता हूं और इसे ग्रहण में आयात करता हूं। – sphinks

+0

यह फ़ंक्शन शाखाओं से आसानी से आसानी से देख सकता है। यह एकमात्र तरीका है जिसे मैं एससीएम को संबंध बनाए रखते हुए नेक्लेड मेवेन परियोजनाओं को ग्रहण में आयात करने में सक्षम हूं। – Kris

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