2012-03-21 16 views
6

मैं जेनकींस उपयोग कर रहा हूँ Maven जावा परियोजनाओं का निर्माण और उन्हें एक नेक्सस भंडार को तैनात करने के लिए साथ incrementing Maven परियोजना संस्करण। मैं गिट का भी उपयोग करता हूं, हालांकि मैं सबवर्सन के लिए अधिक उपयोग करता हूं, इसलिए मेरा गिट ज्ञान सीमित है।जेनकींस/Git

मैं करने के लिए जेनकींस/Maven चाहते हैं: एकीकरण शाखा में

  1. मर्ज सुविधा शाखा
  2. बिल्ड विलय कर कोड, चलाने इकाई
  3. परीक्षण अगर वे, पारित बढ़ाने के Maven संस्करण संख्या
  4. पुश मूल की एकीकरण शाखा में विलय कोड
  5. नेक्सस रिपोजिटरी
पर आर्टिफैक्ट परिनियोजित करें

मैं इकट्ठा Git विलय इस प्रकार प्राप्त किया जा सकता: http://twasink.net/2011/09/20/git-feature-branches-and-jenkins-or-how-i-learned-to-stop-worrying-about-broken-builds/

मैं भी maven-release-plugin बारे में बहुत कुछ पढ़ा है।

मुझे यकीन है कि कैसे वास्तव में ऊपर परिणाम प्राप्त करने के लिए नहीं कर रहा हूँ। अगर मैं प्रत्येक परियोजना के पोम में एससीएम विवरण हार्डकोड, तो maven-release-plugin केवल जेनकींस 'स्थानीय एक कि भंडार के बजाय पर अभिनय नहीं किया जाएगा?

अगर मैं जेनकींस संस्करण संख्या निर्दिष्ट करने के लिए Maven करने के लिए एक वातावरण चर पारित होने का एक समाधान का उपयोग, तो मैं अपने आईडीई में स्थानीय संस्करण संकल्प समस्याएं आती उम्मीद थी।

+0

देखें [मेवेन संस्करण प्लगइन] (http://mojo.codehaus.org/versions-maven-plugin/) 'एमवीएन संस्करण: अगली-रिलीज' या 'एमवीएन संस्करणों का उपयोग करें: सेट -DnewVersion = xyz' –

+0

हाय , मैंने एमवीएन संस्करणों की कोशिश की: set -DnewVersion = xyz लेकिन जब नेक्सस पर तैनात आर्टिफैक्ट अभी भी पुराना संस्करण संख्या सेट लगता है, भले ही मैं लॉग में देख सकूं कि चर मैवेन के माध्यम से पारित हो गया था। –

+0

आप सही हैं, क्योंकि आप मूल स्रोतों को दबाते हैं (संकलन से पहले)। आपको जेनकींस वर्कस्पेस से स्रोतों को धक्का देना है ... –

उत्तर

8

ठीक है, यह एक काफी मुश्किल करना है। लेकिन यह करने योग्य है। मुझे चरण-दर-चरण विचार को समझाएं।

  1. पहले हम दो शाखाएं साथ मर्ज करने की जरूरत है। यह, जेनकींस Git प्लगइन के साथ क्या करना काफी आसान है, क्योंकि यह इस feature built in है: मर्ज से पहले निर्माण विकल्प अपनी परियोजना विन्यास में उन्नत अनुभाग में उपलब्ध है।

  2. इसलिए हमें उन दो शाखाओं के बीच कोड मिला दिया गया है, हम परियोजना के निर्माण के लिए आगे बढ़ सकते हैं - सामान्य रूप से व्यवसाय, मेवेन शैली जेनकींस प्रोजेक्ट।

  3. अब हमें परियोजना के संस्करण में वृद्धि करने की आवश्यकता है और यह मॉड्यूल है, विलय वाली शाखा को प्रतिबद्ध करें और कलाकृतियों को भंडार में धक्का दें। और यहां हमारे पास दो विकल्प हैं:

    1. काम पर मेवेन-रिलीज-प्लगइन का उपयोग करें। हां, यह संभव है, क्योंकि कोई भी नहीं कहता है कि आपको यूआरएल को अपने पोम में रखना होगा, क्योंकि इसे दो अलग-अलग तरीकों से प्रदान किया जा सकता है। प्लगइन कमांड लाइन स्विच -DconnectionUrl= के साथ प्रदान किए गए एक का उपयोग करेगा। और यदि कोई भी प्रदान नहीं किया जाएगा, तो यह वहां से प्राप्त करने के लिए release.properties फ़ाइल की जांच करेगा। अंतिम आरक्षित pom.xml आंग पर जाने के लिए ${project.scm.connection} चर मिलता है। तो आप आसानी से प्लगइन का उपयोग बिना किसी परेशानी के गंदे काम करने के लिए कर सकते हैं और जेनकिंस द्वारा प्रदान की गई विभिन्न तकनीकों का उपयोग करके उस संपत्ति को पेश कर सकते हैं।
    2. आप maven-versions-plugin के संयोजन का उपयोग कर सकते हैं (specificaly संस्करणों: और संस्करणों सेट: लक्ष्यों के लिए प्रतिबद्ध) maven-scm-plugin साथ टैगिंग और परिवर्तन करने से क्या करना है।

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

आशा है कि आपके सभी प्रश्नों को शामिल किया जाए। यदि आपको उत्तर की किसी भी सीमा में अधिक विशिष्ट होने की आवश्यकता है, तो पूछने में संकोच न करें।