2013-04-22 10 views
5

मेरे पास जेनकिंस नौकरी है जो मास्टर गिट शाखा के लिए मेवेन बिल्ड लक्ष्यों 'स्वच्छ पैकेज तैनाती' का उपयोग करती है। हालांकि, गठजोड़ रेपो के कारण redeploys अनुमति नहीं दे रहा है, अगर जेनकींस काम के बिना संस्करण बदलते दूसरी बार चलाता है, यह उम्मीद 400 गलत अनुरोध त्रुटि के साथ विफल हो जाएगा:जेनकिंस नौकरी के माध्यम से मेवेन तैनाती के लिए रणनीति

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal 
    org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) 
    on project common-library: 
Failed to deploy artifacts: Could not transfer artifact 
    net.bacon.common:common-library:pom:1.2.13 from/to bacon-releases 
    (https://maven.bacon.com/nexus/content/repositories/releases): 
Failed to transfer file: 
    https://maven.bacon.com/nexus/content/repositories/releases/net/bacon/common/common-library/1.2.13/common-library-1.2.13.pom. 
Return code is: 400, ReasonPhrase:Bad Request. 

किसी को भी एक अलग रणनीति सुझाव दे सकते हैं, जिससे जेनकिंस नौकरी विफल किए बिना तैनाती का लक्ष्य चलाया जा सकता है?

+0

से पहले क्या आप स्नैपशॉट या रिलीज़ संस्करण को तैनात करना चाहते हैं? – Puce

+3

आपको तैनाती चरण के दौरान * स्वच्छ पैकेज तैनाती * कारण नहीं चलाया जाना चाहिए पैकेज चरण दूसरी बार चल रहा है। ऐसा लगता है कि आपने जीवन चक्र को नोटिस नहीं किया था। यह केवल * स्वच्छ तैनाती * चलाने के लिए आवश्यक है। यदि आप एक आर्टिफैक्ट को तैनात करने का प्रयास करते हैं जो पहले से ही तैनात किया गया है तो आप इसे दूसरी बार नहीं चला सकते हैं। ऐसे प्रयोजनों के लिए आपको रिलीज के बजाय-स्नैपशॉट का उपयोग करना चाहिए। इस मामले में – khmarbaise

+0

@puce यह एक रिलीज संस्करण – Streetdaddy

उत्तर

4

हम क्या करते हैं स्वचालित स्नैपशॉट बनाता है। फिर, संस्करण स्वचालित रूप से वृद्धि हो जाती है।

रिलीज बिल्ड के लिए, हम मेवेन रिलीज प्लगइन का उपयोग करते हैं और मैन्युअल रूप से संस्करण दर्ज करते हैं। हालांकि, आप रिलीज प्लगइन काम कर सकते हैं। यह अगले रिलीज संस्करण के लिए अंतिम अंक बढ़ाने के लिए "-SNAPSHOT" निर्माण, तैनाती, और फिर हटा देगा और फिर "-SNAPSHOT" को जोड़ देगा। वितरण प्रबंधन के लिए

, आपके पास दो रिपोज़, स्नैपशॉट्स के लिए एक और रिलीज के लिए एक, अलग-अलग पुनर्निर्माण सेटिंग्स के साथ हो सकता है।

+0

स्नैपशॉट्स को तैनात करने के लिए +1 और फिर मेवेन रिलीज प्लगइन के साथ मैन्युअल रूप से रिलीज़ करें। ध्यान दें कि मेवेन रिलीज प्लगइन का समर्थन करने के लिए जेनकींस प्लगइन है। – Puce

0

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

"पुनर्वितरण" को अस्वीकार करने का एक अच्छा कारण है: रिलीज़ किए गए संस्करण की सामग्री कभी नहीं बदली जानी चाहिए।

यदि आप मास्टर पर एक ही संस्करण संख्या के लिए काम नहीं करते हैं, तो जंजीर जेनकिन्स नौकरी को "साफ इंस्टॉल करें" में बदलने पर विचार करें (केवल स्थानीय भंडार पर कलाकृतियों को स्टोर करें) और "स्वच्छ तैनाती" के साथ एक नया काम बनाएं यह केवल मैन्युअल रूप से शुरू किया गया है।

0

यह हमारे समूह के लिए भी एक मुद्दा है।

हम चाहते हैं कि मैवेन एक निष्क्रिय तैनाती का प्रयास करे, इसलिए यदि तैनाती पहले से ही मौजूद है, तो यह स्वीकार्य रूप से सफलतापूर्वक सफलतापूर्वक आगे बढ़ेगा, और यदि तैनाती पूर्व में मौजूद नहीं है, तो यह अपलोड और सफलता के साथ तैनात होगा।

हम जेनकिन्स को कवरेज चेक बनाने और पास करने के बाद तैनात करना चाहते हैं, लेकिन इसे कैसे बनाना है ताकि केवल गैर-तैनात किए जाएंगे, और पहले से ही तैनात किए गए हैं।

हमारा समाधान एक कस्टम स्क्रिप्ट था।

1

हम एक "डबल कार्रवाई" समाधान लागू होते हैं:

  • वृद्धि संस्करण
  • भागो mvn स्थापित
  • भागो परीक्षण
  • यदि सब पारित कर दिया है, हम चलाने mvn तैनात

इस तरह, हम बीएफ को तैनात करने की कोशिश नहीं करते हैं अयस्क हम सभी जानते हैं और हमारे पास हर बार एक अद्वितीय संस्करण तैनात है।

मुझे उम्मीद है कि इससे मदद मिलती है।

+0

क्या आपको जेनकींस का उपयोग करके अपने स्थापित जार से परीक्षण चलाने का कोई तरीका मिला है? – JBCP

+0

हम सीधे स्थापित जार का उपयोग नहीं करते हैं। हम उन्हें युद्धों में और फिर आरपीएम में पैक करते हैं, जिसे हम एक समर्पित सर्वर पर स्थापित करते हैं। क्या इससे आपके सवाल का जवाब मिलता है? –

0

आप रिलीज उम्मीदवार अवधारणा का उपयोग कर सकते हैं। जब आप रिलीज शुरू करते हैं तो आप संस्करण में -RC1 जोड़ते हैं (उदाहरण के लिए 1.1.0-आरसी 1)।

अगले पुनर्वितरण के साथ आप आरसी संख्या में वृद्धि कर रहे हैं। जब रिलीज समाप्त हो जाता है और आप एक नया टैग जेनरेट करना चाहते हैं, तो आप केवल संस्करण के लिए आरसी हटा दें। TAG निर्माण

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