मेरे पास एक गिट भंडार है जिसमें शीर्ष-स्तरीय मेवेन प्रोजेक्ट्स का एक गुच्छा शामिल है (प्रत्येक अपनी उप-निर्देशिका में एक pom.xml के साथ बैठता है)। यहां शीर्ष-स्तर का अर्थ है कि ये प्रोजेक्ट सीधे रेपॉजिटरी रूट के नीचे उपनिर्देशिका में बैठते हैं। इन सभी परियोजनाओं को एक ही गिट भंडार में रहना चाहिए।जेनकींस: एक गिट भंडार से कई शीर्ष-स्तरीय परियोजनाओं का निर्माण कैसे करें?
repo
+--- projectA
+--- pom.xml
+--- projectB
+--- pom.xml
वे स्वतंत्र जेनकिंस नौकरियों द्वारा बनाया/बनाया जाना चाहिए। इसलिए हमारे पास प्रोजेक्ट ए के लिए एक नौकरी है और प्रोजेक्ट बी के लिए एक है।
पूर्व में सबवर्सन के साथ मैं एक जेनकिन्स जॉब (प्रत्येक प्रोजेक्ट के लिए) स्थापित करने में सक्षम था जो केवल प्रोजेक्ट स्रोत की जांच करेगा और pom.xml से मेवेन बिल्ड चलाएगा।
गिट मॉडल (शायद सभी डीवीसीएस के साथ समान) के साथ यह परिवर्तन और मुझे यकीन नहीं है कि सबसे अच्छा अभ्यास क्या है। वहाँ कुछ ही विकल्प है कि मैं देख रहा हूँ और जो कोई भी से मैं वास्तव में पसंद कर रहे हैं:
- प्रत्येक जेनकींस काम configured क्लोन करने के लिए है/पूर्ण Git रेपो खींच और Maven निर्माण के लिए /pom.xml को दर्शाता है। तो नौकरी में सभी कोड हैं लेकिन यह केवल एक टुकड़ा बनाता है।
- Git (http://book.git-scm.com/5_submodules.html) जो लगते थोड़ा संभाल करने मुश्किल हो (और आसानी से तोड़ सकते हैं)
- एक Maven माता पिता बनाएँ (एग्रीगेटर कि परियोजनाओं के सभी शामिल हैं) परियोजना है कि चलाता है प्रत्येक परियोजनाओं का निर्माण (होने submodules प्रदान करता है एक जेनकिंस नौकरी)। इस pom.xml में ProjectA और ProjectB के तत्व शामिल हैं।
क्या आप इस (बहुत सामान्य सेटअप) के लिए और अधिक उपयोगी दृष्टिकोण देखते हैं। आपका अनुभव क्या है? कोई भी सर्वोत्तम प्रथाओं?
मैं मार्टिन.हैरर से अत्यधिक सहमत हूं कि, जब सबवर्सन की तुलना में, गिट को रेपो की उप-परियोजना की जांच करने की क्षमता नहीं है, तो यह एक सीमित कारक है। मैं इस सवाल का अच्छा जवाब भयानक होगा। – djangofan