2011-08-16 11 views
8

का उपयोग कर परियोजना संगठन वर्तमान में हमारी टीम एसवीएन से गिट में जाने की प्रक्रिया में है। वर्तमान में हम अपने निर्माण उपकरण के रूप में मेवेन का उपयोग करते हैं।मेवेन + गीट

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

मेरा प्रश्न यह है कि गिट रेपो बनाने के लिए उचित स्तर क्या है ताकि फ़ाइल पदानुक्रम/संगठन बनाए रखा जा सके? उदाहरण:

  • बिग परियोजना - (कोई स्रोत यहाँ है, बस एक पोम)
    • बैकएंड परियोजना (स्रोत + पोम)
    • ग्राहकों (यहाँ कोई स्रोत है, बस एक पोम)
      • कंसोल (स्रोत + पोम)
      • वेब (स्रोत + पोम)

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

संपादित करें: टीम के सदस्य की चिंता टैगिंग के साथ ही प्रतिबद्ध इतिहास के साथ उतनी ही अधिक नहीं थी। यह देखते हुए कि Git रेपो जड़ बिग परियोजना पर है, और मैं वेब परियोजना टैग करने के लिए (बिग परियोजना टैग करके) चाहते हैं, क्यों कि टैग कंसोल परियोजना, को शामिल करना चाहिए जो शायद प्रासंगिक में नहीं वेब टैग करने के लिए?

+0

आपने इसे एसवीएन में कैसे संभाला? मुझे लगता है कि आपके पास वर्णन की तरह एक संरचना थी। आपने बिग-प्रोजेक्ट को सरल रूप से चेक आउट किया है और बाकी सब कुछ हार्ड ड्राइव पर मिलेगा ... तो आप इसे क्यों बदलना चाहेंगे? एक परियोजना के लिए – khmarbaise

उत्तर

5

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

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

+0

+1। सबवर्सन और अन्य, पुराने उपकरण के विपरीत, यह एक बाधा नहीं है। –

+0

आप किस टूलिंग का उपयोग करते हैं? मेरे पास एक ही गिट रिपोजिटरी में 20 मेवेन मॉड्यूल के साथ एक समान सेटअप है, जिसमें कोड की ± 800000 लाइनें हैं। मुझे निरंतर रीइंडेक्सिंग के कारण ईजीटी का उपयोग करके ग्रहण में गंभीर प्रदर्शन समस्याएं मिलीं ... – verhage

+0

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

0

मैं गिट में संरचना को एसवीएन में छोड़ने का सुझाव दूंगा जिसका मतलब है कि इसमें पूरी परियोजना के साथ एक ही गिट रिपोज़ है।मुद्दा यह है कि आप इस प्रकार के बहु-मॉड्यूल के निर्माण के लिए किसी भी समस्या के बिना मेवेन रिलीज प्लगइन का उपयोग कर सकते हैं।