मूल्य मैं एक दूसरे पर निर्भर कुछ परियोजनाओं के लिए एक तैनाती पाइपलाइन का निर्माण कर रहा हूं। प्रत्येक बिल्ड एक अद्वितीय संस्करण संख्या के साथ एक नया रिलीज बिल्ड बनाता है, जिसे मैवेन रिपोजिटरी में तैनात किया जाता है। पाइपलाइन में डाउनस्ट्रीम परियोजनाएं तब उस नए संस्करण के साथ एक निर्भरता के रूप में ट्रिगर की जाती हैं और इस तरह से बनाई जाती हैं।बदलते मेवेन pom.xml <properties> भौतिक रूप से
मुझे परियोजना बनाने से पहले pom.xml (या बहु मॉड्यूल प्रोजेक्ट में सभी पोम्स) में एक संपत्ति मान बदलने के लिए क्या चाहिए। उदाहरण के लिए निम्नलिखित कोड में "0.1.200" को "0.1.345" में बदल दिया जाएगा (या जो भी नवीनतम बिल्ड नंबर है)। सिस्टम गुणों का उपयोग करना एक विकल्प नहीं है, क्योंकि अद्यतन पोम को मैवेन रिपोजिटरी में तैनात किया जाएगा, इसलिए परिवर्तन लगातार होना चाहिए।
<properties>
<foo.version>0.1.200</foo.version>
</properties>
<dependencies>
<dependency>
<groupId>com.example</groupId>
<artifactId>foo</artifactId>
<version>${foo.version}</version>
</dependency>
</dependencies>
वहाँ एक कमांड लाइन अनुदेश के साथ ऐसा करने के लिए कुछ Maven प्लगइन है? अन्यथा मुझे एक छोटी लिपि (उदा। रूबी में) लिखनी होगी जो परियोजना में सभी pom.xml फ़ाइलों को पार और बदल देती है।
उस प्लगइन में अपने नवीनतम संस्करणों पर निर्भरता को स्वचालित रूप से अपडेट करने के लिए संचालन हैं, लेकिन मैंने एक ही संपत्ति को निर्दिष्ट मूल्य पर अपडेट करने का कोई तरीका नहीं देखा। –
[संस्करण-मेवेन-प्लगइन] (http://mojo.codehaus.org/versions-maven-plugin/examples/update-properties.html) ऐसी संपत्तियों को संभालने में सक्षम है। दस्तावेज़ों में एक नज़र डालें। – khmarbaise
संस्करणों के साथ समस्या: अद्यतन-गुण यह है कि यह स्वचालित रूप से यह पता लगाने का प्रयास करता है कि नवीनतम संस्करण क्या है। एक तैनाती पाइपलाइन में जो अच्छा नहीं है, क्योंकि यह गलती से मैवेन को बहुत पुराना या नया संस्करण ढूंढने का कारण बन सकता है। अपरिवर्तनीय बिल्डों से बचने के लिए, मुझे किस संस्करण का उपयोग करने के बारे में स्पष्टता की आवश्यकता है। –