2011-10-25 7 views
5

हम अपने परिवर्तनों के लिए हमारे निर्माण और मर्कुरियल के लिए मेवेन का उपयोग करते हैं। जबकि हमारे सॉफ़्टवेयर का एक बड़ा संस्करण पहले से ही संभाला गया है, हम वास्तव में यह जानना चाहते हैं कि हमारे सॉफ़्टवेयर को चलाने वाले किसी भी सर्वर को बनाने के लिए Mercurial changeet का उपयोग किस प्रकार किया गया था।Mercurial कार्यशील निर्देशिका परिवर्तन आईडी (838cb9c0367e) को मैवेन के माध्यम से गुण फ़ाइल में इंजेक्ट करें?

क्या कोई मेवेरियल में कार्यशील निर्देशिका के परिवर्तन को पकड़ने के लिए मेवेन में किसी तरीके से जानता है और इसे एक प्रॉपर्टी फ़ाइल या कुछ में ले जाता है ताकि हम इसे हमारे आवेदन में कहीं भी प्रदर्शित कर सकें जब sys admins "sanity check" के विरुद्ध क्या करते हैं संस्करण वर्तमान में चल रहा है?

+0

Maven के बारे में पता नहीं है, लेकिन मौजूदा changeset 'एचजी आईडी -i' – zerkms

+0

यह लगभग समान ही सवाल की तरह लग रहा के साथ आसानी से प्राप्त किया जा सकता है: http://stackoverflow.com/questions/3934603/मेवेन-मर्कुरियल-फॉर-बिल्ड-नंबर –

उत्तर

5

अपने pom.xml को यह सम्मिलित करें:

<project> 
    <build> 
    <resources> 
     <resource> 
     <directory>src/main/resources</directory> 
     <filtering>true</filtering> 
     </resource> 
    </resources> 

    <plugins> 
     <plugin> 
     <groupId>org.codehaus.mojo</groupId> 
     <artifactId>buildnumber-maven-plugin</artifactId> 
     <executions> 
      <execution> 
      <phase>validate</phase> 
      <goals> 
       <goal>hgchangeset</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins> 
    </build> 
</project> 

फिर एक संपत्ति ${changeSet} के रूप में सेट के साथ src/main/resources में एक .properties फ़ाइल बनाते हैं। उदाहरण के लिए:

revision = ${changeSet} 
modificationTime = ${changeSetDate} 
+0

यह अजीब है, एक आकर्षण की तरह काम करता है !!!!! – benstpierre

0

यदि आप कमांड आउटपुट (पर्यावरण चर, f.e में) को रोक सकते हैं hg id -i आसान तरीका होगा। अधिक जटिल आईडी hg log --template "..." tip

0

आप एक <exec> या <java> कार्य जो उत्पन्न करता है एक गुण है कि जानकारी के साथ फ़ाइल को चलाने के लिए Maven के antrun प्लगइन इस्तेमाल कर सकते हैं के साथ निर्माण किया जा सकता। हालांकि, यह बहुत ही सुरुचिपूर्ण नहीं है।

6

आपको अपडेट हुक जो एक unversioned .properties फ़ाइल में changeset आईडी आउटपुट बना सकता है:

इस दृष्टिकोण का
[hooks] 
update = echo changesetid=$HG_PARENT1 > version.properties 

लाभ है कि आप आसानी से इस मूल्य अगर जरूरत को अनुकूलित कर सकते है, और निर्माण के स्वतंत्र रहता है संस्करण प्रणाली (या इसकी कमी)।

यदि आप मेवेन बिल्ड में कुछ डालना चाहते हैं जो इसे उत्पन्न करता है, तो क्या आपने Buildnumber Maven Plugin (hgchangeset लक्ष्य) या Maven Mercurial Build Number Plugin देखा है?

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