2012-11-12 4 views
13

मुझे संस्करण 0.0.1-SNAPSHOT पर एक प्रोजेक्ट मिला है, और जब हम इसे TeamCity के माध्यम से बनाते हैं, तो हमें build.vcs.number प्रॉपर्टी भी मिलती है, जो सबवर्सन संशोधन है जो निर्माण को ट्रिगर करता है।SNAPSHOT को हटाने के लिए प्रोजेक्ट संस्करण प्रॉपर्टी का उपयोग करें?

हमारी असेंबली में, हम एक ज़िप फ़ाइल बनाते हैं जिसे foo-distribution-0.0.1-SNAPSHOT.zip जैसे कुछ कहा जाता है, लेकिन मैं सोच रहा था कि कोई तरीका है कि मैं artifact नाम में build.vcs.number प्रॉपर्टी डाल सकता हूं foo-distribution-0.0.1.12345-SNAPSHOT.zip देने के लिए?

क्या कोई अंतर्निहित संपत्ति है जो संस्करण संख्या का केवल संख्यात्मक हिस्सा है, या स्नैपशॉट भाग को विभाजित करने का कोई अन्य तरीका है?

संपादित करें: मैंने पहले ही pom.xml संस्करण को $ {my.version} -SNAPSHOT के रूप में सेट करने का प्रयास किया है, और उसके बाद गुणों में my.version को परिभाषित किया है - यह मैवेन रिलीज प्लगइन को छोड़कर हमेशा के लिए काम करता है, जो शिकायत करता है कि यह संस्करण को पार्स नहीं कर सकता (समझ में आता है, यह अगले विकास संस्करण को स्वतः अनुमान नहीं लगा सकता है)।

+1

सरल समाधान के लिए एक regex प्रतिस्थापन लगाने से "-SNAPSHOT" से छुटकारा पाने के विरूपण साक्ष्य जारी करने के लिए है। सबसे अच्छी बात यह है कि संशोधन संख्या को मैनिफेस्ट फ़ाइल में रखना है, न कि फ़ाइल नाम के हिस्से के रूप में। संस्करण संख्या को परिभाषित करने के लिए किसी संपत्ति का उपयोग करना काम नहीं करेगा और यह भी समझ में नहीं आता है। आप उस संपत्ति का उपयोग कर सकते हैं जो निर्माण के दौरान फ़िल्टर किया गया है और जिसमें संस्करण संख्या भी हो सकती है। – khmarbaise

+1

संभावित डुप्लिकेट [मैवेन रिलीज के दौरान खोए गए गुण: प्रदर्शन] (http://stackoverflow.com/questions/12397581/properties-lost-during-maven-releaseperform) – maba

उत्तर

35

मुझे पता है इस सवाल का एक बालक दिनांकित है, लेकिन मैं सिर्फ एक इसी तरह की स्थिति में भाग है, और यह है मैं इसे कैसे हल हो:

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.8</version> 
    <executions> 
     <execution> 
     <id>parse-version</id> 
     <goals> 
      <goal>parse-version</goal> 
     </goals> 
     </execution> 
    </executions> 
</plugin> 

क्या इस बिल्ड-हेल्पर प्लगइन के "पार्स-संस्करण" मोजो होगा आप निम्नलिखित गुण है कि आप आप मनचाहे ढंग से उपयोग कर सकते हैं देना है: "। भागों"

parsedVersion.majorVersion 
parsedVersion.minorVersion 
parsedVersion.incrementalVersion 
parsedVersion.qualifier 
parsedVersion.buildNumber 

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

"version":"${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.${parsedVersion.incrementalVersion}" 

तो, मैं अनिवार्य रूप से "-SNAPSHOT" की अलग करना कर रहा हूँ तो अपने एक्सटेंशन के अपने स्थानीय देव प्रतियां परीक्षण के लिए ठीक से स्थापित हो जाएगा। आप टुकड़ों के साथ जो कुछ भी चाहते हैं उसे बना सकते हैं। =)

+0

उस संस्करण को बढ़ाने के लिए निम्न स्ट्रिंग का उपयोग किया जा सकता है: 'newVersion = \ $ {parsedVersion.majorVersion} $ {parsedVersion.minorVersion}। $ {parsedVersion.nextIncrementalVersion} ' – Lonzak

+0

देखें http://www.mojohaus.org/build-helper-maven-plugin/usage.html – Naxos84

1

अन्य लोगों को इस से अधिक करने के लिए देख रहे हैं या बिल्ड नंबर से स्नैपशॉट निकालना चाहते हैं जो के लिए, इस प्लगइन बहुत उपयोगी http://www.mojohaus.org/build-helper-maven-plugin/usage.html

मैं विशेष रूप से पाया इस उपयोगी

एक प्रॉपर्टी सेट है एक मूल्य के

<project> 
    ... 
    <build> 
    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>build-helper-maven-plugin</artifactId> 
     <version>1.9.1</version> 
     <executions> 
      <execution> 
      <id>regex-property</id> 
      <goals> 
       <goal>regex-property</goal> 
      </goals> 
      <configuration> 
       <name>human.version</name> 
       <value>$\{project.version}</value> 
       <regex>-SNAPSHOT</regex> 
       <replacement> pre-release development version</replacement> 
       <failIfNoMatch>false</failIfNoMatch> 
      </configuration> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
    ... 
</project> 
संबंधित मुद्दे