2009-03-02 88 views
71

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

उत्तर

36

एक लंबे समय CruiseControl committer और कोई है जो हडसन इस्तेमाल कभी नहीं किया गया है मैं बहुत पक्षपाती हूँ, लेकिन उस पर मेरी ले के रूप में है:

हडसन से बहुत आसान है और चल पाने के लिए (बड़े हिस्से में है एक अच्छा वेब इंटरफेस) और एक बहुत ही सक्रिय प्लगइन विकास समुदाय है।

क्रूज़ कंट्रोल 3rd party stuff के बहुत से समर्थन का समर्थन करता है और प्लगइन प्रीकॉन्फिगरेशन और x.projects जैसे xml कॉन्फ़िगरेशन के साथ कुछ साफ चाल करने का लाभ है जो आपको प्रोजेक्ट के साथ कॉन्फ़िगरेशन जानकारी संस्करण प्रदान करने देता है।

यदि आप केवल कुछ बिल्ड करने जा रहे हैं तो मुझे लगता है कि हडसन स्पष्ट विजेता है। यदि आपके पास बहुत कुछ है - और xml को ध्यान में रखें - तो मुझे लगता है कि क्रूज़ कंट्रोल की एक्सएमएल कॉन्फ़िगरेशन चाल वास्तविक शक्ति बन जाती है।

+2

"तृतीय पक्ष सामग्री" के लिए लिंक काम नहीं कर रहा है। –

15

एक अंतर यह है कि हडसन एक भी प्रतिभाशाली बुद्धि — Kohsuke कावागुची के उत्पाद है। इसके कारण, यह लगातार, सुसंगत, और रॉक ठोस है। प्रगति की दर पर नकारात्मक सीमा कुछ सीमा हो सकती है। हालांकि, Kohsuke अविश्वसनीय रूप से शानदार है, इसलिए मैं इसके बारे में ज्यादा चिंतित नहीं होगा। और, यह एक्स्टेंसिबल है, इसलिए यदि कुछ है Kohsuke के पास समय नहीं है (या नहीं चाहता), तो आप शायद इसे स्वयं कर सकते हैं।

30

मेरा आखिरी प्रोजेक्ट, हमने क्रूज़ कंट्रोल पर शुरुआत की। जो चट्टान फिर हम हडसन चले गए, जो और भी चले गए। मुझे हडसन के बारे में पसंद आया:

  • अपस्ट्रीम और डाउनस्ट्रीम परियोजनाएं। तो आपके डेटा एक्सेस कोड के प्रति प्रतिबद्धता अंततः प्रस्तुति परत का निर्माण भी ट्रिगर करेगी।

  • आसानी से एक मौजूदा प्रोजेक्ट का उपयोग एक नए के शुरुआती बिंदु के रूप में करें - इसलिए यदि आप विकास शाखाएं बनाने की आदत में हैं, तो सुनिश्चित करें कि ये निरंतर एकीकरण के अधीन हैं, एक तस्वीर है।

+4

+1, पूरी तरह सहमत हूँ, विशेष रूप से दूसरे बिंदु के बारे में। हम इसके कारण बहुत सारी चीजों के लिए हडसन का उपयोग कर समाप्त हो गए हैं (इसके बारे में अधिक जानकारी: http://stackoverflow.com/questions/604385/what-is-the-difference-between-hudson-and-cruisecontrol-for- जावा-प्रोजेक्ट्स/888054 # 888054) – Jonik

+1

आपके दूसरे बिंदु के बारे में, "[यू] एस [आईएनजी] एक मौजूदा प्रोजेक्ट को एक नए के लिए शुरुआती बिंदु के रूप में" सीसी के साथ भी आसान है: बस प्रासंगिक फाइलों की प्रतिलिपि बनाएँ, उचित परिवर्तन करें, और नई परियोजना को 'ccnet.config' में पंजीकृत करें। वास्तव में बहुत आसान है। सीसी पर जेनकींस पर विचार करते समय "आसानी से" सामान्य रूप से "आसानी से" हो सकता है - इसे जीयूआई बनाम एक्सएमएल फाइलों में करना। TMTOWTDI, लेकिन न तो विशेष रूप से मुश्किल है। – J0e3gan

3

हडसन मेरी राय में अधिक उपयोगकर्ता के अनुकूल विकल्प है। इसे वेब इंटरफेस के माध्यम से पूरी तरह से स्थापित और बनाए रखा जा सकता है (बेशक वेबपैप की प्रारंभिक स्थापना के अलावा)।

एक ही तरीका है इस CruiseControl के बारे में कहा जा सकता है अगर आप में निर्मित एक्सएमएल फ़ाइल संपादक गिनती है।

फिर भी, दोनों का उपयोग करने के बाद भी, मैं अभी भी स्वचालित निर्माण के बिना किसी को भी पसंद नहीं करूंगा।

+0

"फिर भी, दोनों का उपयोग करने के बाद, मैं किसी भी स्वचालित निर्माण के बिना किसी को भी पसंद नहीं करूंगा।" स्वच्छता के उपाय के लिए +1। देर से जेनकींस के आस-पास के सभी क्रोध और उच्च धार्मिकता के बीच, लोग अक्सर भूल जाते हैं कि सीसी, जेनकींस और अन्य परिपक्व सीआई विकल्पों को अंत में _means हैं - अंत में अंततः साधनों से अधिक मायने रखता है। निजी तौर पर, मुझे सीसी को इसका उपयोग करने में आसान लगता है, यहां तक ​​कि इसके सापेक्ष नवागंतुक के रूप में भी। जेनकींस भी ठीक है। लेकिन एक बनाम दूसरे के बारे में इतना बड़ा सौदा करना आईएमओ के बारे में बहुत कुछ नहीं है। – J0e3gan

4

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

117

मैं this answer से सहमत हूं, लेकिन कुछ अंक जोड़ना चाहता था।

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

क्रूज़ कंट्रोल बहुत अच्छा रहा है, लेकिन जैसा कि डैन डायर के उपयुक्त नामित ब्लॉग पोस्ट, Why are you still not using Hudson? में उल्लेख किया गया है, यह पहले होने से पीड़ित है। (उम, ब्रिटेन की तरह, यदि आप बाद में औद्योगिक क्रांति में आएंगे, तो जब अन्य ने नई प्रौद्योगिकियों के साथ इसे आगे बढ़ाया था।)

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

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

तीसरे पक्ष की सामग्री (mentioned here by Jeffrey Fredrick) के लिए - यह एक अच्छा मुद्दा है, लेकिन मेरी धारणा यह है कि हडसन जल्दी से पकड़ रहा है, और इसके लिए plugins available पहले से ही बहुत बड़ी संख्या में है।

मेरे लिए, दो बातें मैं नाम कर सकते हैं कि मैं CruiseControl के बारे में याद आती है कर रहे हैं:

  1. के बारे में इसकी चेतावनी ईमेल टूटा हडसन की तुलना में अधिक जानकारीपूर्ण भी बनाता है। ज्यादातर मामलों में मूल कारण सीसी के अच्छी तरह से स्वरूपित HTML मेल से स्पष्ट था, जबकि हडसन I के साथ आमतौर पर हडसन वेब यूआई के लिंक का पालन करना होगा, और विवरण प्राप्त करने के लिए थोड़ा सा क्लिक करना होगा।
  2. CruiseControl dashboard बॉक्स के बाहर, "information radiator" (सार्वजनिक मॉनिटर पर दिखाया गया, या दीवार पर प्रक्षेपित किया गया है, ताकि आप हमेशा सभी परियोजनाओं की स्थिति को तुरंत देख सकें) के रूप में बॉक्स के बाहर बेहतर अनुकूल है। हडसन के सामने वाले पृष्ठ के साथ, हमें कुछ अच्छी तरह से हरे/लाल नौकरी पंक्तियों को पाने के लिए कुछ Greasemonkey चाल की जरूरत थी।

मामूली अस्वीकरण: मैं पिछले साल या तो सीसी परियोजना का बारीकी से पालन नहीं कर रहा हूं। हडसन renamed/forked रूप Jenkins (हडसन निर्माता Kohsuke Kawaguchi और दूसरों के द्वारा) कर दिया गया है: (लेकिन एक quick look से, है ना किसी नाटकीय ढंग से बदल गया है।)

नोट (2011-02-03)। ऐसा लगता है कि ओरेकल-जो हडसन नाम को नियंत्रित करता है- "Hudson" भी रखेगा, लेकिन मेरी निजी सिफारिश जेनकिंस के साथ जाना है, इससे कोई फर्क नहीं पड़ता कि ओरेकल क्या कहता है।

+16

लगभग 2 साल बाद, मैं अभी भी हडसन ([अब इसका नाम बदलकर जेनकींस] (http://jenkins-ci.org/content/hudsons-future) के बारे में मैंने जो कुछ भी लिखा है, उससे सहमत हूं। एक परिशिष्ट के रूप में, यहां कुछ और दिलचस्प चीजें हैं जिन्हें मैंने तब से हडसन का उपयोग किया है: कुछ एएमआई से नए एडब्ल्यूएस ईसी 2 उदाहरण लॉन्च करें और सीधे हमारे नवीनतम सॉफ्टवेयर को संस्करण नियंत्रण से तैनात करें; चलो (तकनीक-समझदार) ग्राहक डेमो एप्लिकेशन की उपस्थिति को नियंत्रित करता है (ऐप द्वारा उपयोग की जाने वाली कॉन्फ़िगरेशन फ़ाइल को संपादित करके), और ऐप द्वारा उपयोग किए गए डेटाबेस के विरुद्ध कुछ व्यवस्थापक संचालन भी चलाता है (पैरामीटरयुक्त नौकरियां उपयोगी होती हैं) ... (cont) – Jonik

+1

... समय-समय पर जांचें कि कोई वेबसाइट या सेवा ऊपर है और चल रही है; सफल ट्रंक निर्माण के तुरंत बाद ट्रंक से सभी कार्य शाखाओं में परिवर्तनों को स्वचालित रूप से मर्ज करें; और इसी तरह। यह ध्यान देने योग्य है कि ज्यादातर मामलों में हडसन एक शेल/पायथन/आदि स्क्रिप्ट के लिए ** ** एक अंतराल ** था, या एक cronjob के लिए एक और "दृश्यमान" प्रतिस्थापन था। लेकिन फिर, इस तरह के उद्देश्यों के लिए यह बहुत अच्छा है! एक प्रोजेक्ट में, ग्राहक ने विशेष रूप से व्यवस्थापक/हाउसकीपिंग ऑपरेशंस के लिए एक हडसन नौकरियों के लिए पूछा था; जरूरतों के लिए उनके पास यह पूरी तरह से पर्याप्त था, और एक स्क्रिप्ट चलाने के लिए सर्वर पर लॉगिंग करने से कहीं अधिक आसान था। – Jonik

1

मैंने क्रूज़ नियंत्रण की कोशिश की ... यह अच्छा है ... लेकिन दस्तावेज़ खंडित हैं। डैशबोर्ड उलझन में है। विजेट निर्माण भी भ्रमित है। कभी हडसन की कोशिश नहीं की। सप्ताहांत पर कोशिश करेंगे।

0

मैंने हाल ही में बोरलैंड बीडीएस 2006 परियोजनाओं को सबवर्सन के उपयोग के निर्माण के लिए जेनकींस स्थापित किया है और मैं इसके साथ बहुत खुश हूं। मैंने अभी तक क्रूज़ कंट्रोल का उपयोग नहीं किया है, इसलिए मैं तुलना नहीं कर सकता। अधिक जानकारी के लिए मेरे ब्लॉग पोस्ट पढ़ें।

Continuous integration of Delphi project with Jenkins