11

के माध्यम से रिलीज हो रहा है मैं अपने आंतरिक भंडार में मेवेन रिलीज करने के लिए बैच-कार्य प्लगइन का उपयोग करने के लिए हडसन की स्थापना कर रहा हूं।मैडन हडसन

mvn --batch-mode release:prepare 
mvn --batch-mode release:perform 

मैं अन्य तरीकों से लोगों का इस्तेमाल किया है और पेशेवरों और उन तरीकों में से विपक्ष में दिलचस्पी रखता हूँ: मैं के माध्यम से यह कर रहा हूँ। इसके अलावा, किसी भी गठिया लोग आ गए हैं।

उत्तर

8

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

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

उस ने कहा, हमारे पास केवल एक विशेष मशीन है (सोनाटाइप में यह केवल एक वीएम है) सेटअप केवल निर्माण के लिए है। ऐसा करने के लिए यह किया जाता है कि कोई पर्यावरणीय परिवर्तन नहीं होता है जो गलती से निर्माण को प्रभावित कर सकता है (जैसे एक जेडीके परिवर्तन)। यह किसी के लिए रिलीज प्रक्रिया को चुनना भी आसान बनाता है क्योंकि यह हमेशा जाने के लिए तैयार रहता है।

+3

अफसोस की बात है, मुझे लगता है कि मैन्युअल रिलीज एक समाधान है जो तकनीकी रूप से स्वीकार्य होगा लेकिन राजनीतिक रूप से अस्वीकार्य होगा। मैं उल्लेख करूंगा कि सोनाटाइप में एक वरिष्ठ व्यक्ति ने _ व्यक्तिगत रूप से सुझाव दिया है कि हम हाथ से हमारी रिलीज करते हैं। – sal

+5

विकल्प यह है कि आप रिलीज करते हैं: हाथ से लक्ष्य तैयार करें, या कम से कम रिलीज: तैयार करें- डीड्रीरुन = जब तक आप पर्याप्त रूप से सुनिश्चित न हों कि सभी मानदंड पूर्ण हो जाएं, तो आप अपनी बिल्ड प्रक्रिया को बंद कर सकते हैं और उचित रूप से सुनिश्चित कर सकते हैं यह काम करने जा रहा है। –

+2

मुझे वास्तव में यह विचार पसंद है। रिलीज होने के बाद: तैयार करें- डीड्रीरुन = सही निष्पादित पहले हमें सबसे अधिक समस्याओं को रोकना चाहिए। – sal

0

हम हडसन मेवेन रिलीज प्लगइन के साथ प्रयोग कर रहे हैं, हालांकि मुझे रिलीज को उचित रूप से क्रेडिट करने के लिए चुनौती दी गई है, बिना हमारी खराब फाइलों में हार्डकोडिंग पासवर्ड जैसे बुराई।

2

हाल ही में, एक m2release प्लगइन मेरे ध्यान में आया। अच्छा लगा Althought, मैं पूरी तरह से «पोम-ट्वीकिंग मुक्त» होने के लिए मेरी रिलीज प्रक्रिया पसंद आया होगा। क्या मैं उस से मतलब है कि हम संपूर्ण रिलीज़ कार्रवाई करने के लिए 4 इनपुट पैरामीटर प्रदान करने के लिए है जो: (उदा। 1.0.0)

  1. रिलीज़ संस्करण
  2. नए विकास संस्करण (पूर्व 1.0.1-। स्नैपशॉट) एससीएम में
  3. रिहाई टैग (उदा। जारी-1.0.0 या 1.0.0)
  4. टैग आधार पथ एससीएम

में पहले 2 स्वीकार्य चूक की है। बग-फ़िक्स संस्करण अंक पर बंपिंग संस्करण मेरे लिए बिल्कुल ठीक है।

संख्या 4 को पोम में निर्दिष्ट किया जा सकता है। यह नहीं बदलेगा।

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <configuration> 
     <tagBase>https://example.com/svn/myProject/releases</tagBase> 
    </configuration> 
</plugin> 

यह तीसरा है जो मुझे बटन के धक्का पर रिलीज के पूर्ण स्वचालन से रोकता है। डिफ़ॉल्ट रिहाई टैग लेबल हमारे लिए यह काम नहीं चलेगा, ताकि हम उसे निर्दिष्ट करने के लिए है:, अब

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-release-plugin</artifactId> 
    <configuration> 
     <tag>release-${pom.version}</tag> 
     <tagBase>https://example.com/svn/myProject/releases</tagBase> 
    </configuration> 
</plugin> 

जबकि इस हो सकता है मैं तो बस क्या जरूरत है, मैं कम से -SNAPSHOT के साथ एक SVN टैग होने अंत समाप्त। :(तो मुझे हडसन जॉब कॉन्फ़िगरेशन में टैग पैरामीटर पास करना होगा। इसके अलावा, मुझे इसे प्रत्येक रिलीज के लिए बदलना होगा ... जो बिल्कुल मुझे चाहिए वह नहीं है।


तो, अंत में, हडसन में एक maven2 प्रकार परियोजना + m2release हडसन प्लगइन + Maven रिहाई सही ढंग से कॉन्फ़िगर प्लग इन होने सब रिहाई प्रक्रिया मैं अब तक देखा है की माँ है। हालांकि सही नहीं था, यह मुझे बहुत बंधे काम बचाया।

जेएस।

+0

मेवेन-रिलीज-प्लगइन (2.2.1) का वर्तमान संस्करण एक नई सुविधा है जो आपकी समस्या # 3 हल करता है। अनुभाग 'डिफ़ॉल्ट टैग नाम प्रारूप को ओवरराइड करना' यहां देखें: http://maven.apache.org/plugins/maven-release-plugin/examples/prepare-release.html –

+0

अपने pom.xml में यह अधिक सही है ' रिलीज[email protected]{project.version}' निर्दिष्ट करें, अन्यथा इसे मेरे मैवेन स्नैपशॉट संस्करण द्वारा प्रतिस्थापित किया गया है। –