2011-02-02 28 views
10

करने की तैनाती मैं अपाचे Maven 3.0 नेक्सस मुक्त स्रोत संस्करण, संस्करण का उपयोग कर रहा अद्यतन नहीं किया गया है: 1.8.0.1Maven-metadata.xml जब गठजोड़

यह मेरा pom.xml का हिस्सा है

<plugin> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.5</version> 
</plugin> 
<plugin> 
    <artifactId>maven-release-plugin</artifactId> 
    <version>2.1</version> 
</plugin> 

<distributionManagement> 
    <repository> 
    <id>nexus</id> 
    <name>nexus</name> 
    <url>http://myrepo/nexus/content/repositories/releases</url> 
    </repository> 
</distributionManagement> 

यह एक बहुत ही सरल परियोजना है। जब मैं कर

mvn release:prepare 
    mvn release:perform 

सब कुछ ठीक चलता है:

... 
[INFO] [INFO] --- maven-deploy-plugin:2.5:deploy (default-deploy) @ simple --- 
[INFO] Uploading: http://myrepo/nexus/content/repositories/releases/...pom 
[INFO] 4 KB 
[INFO] 5 KB 
[INFO]   
[INFO] Uploaded: http://myrepo/nexus/content/repositories/releases/....pom (5 KB at 1.0 KB/sec) 
[INFO] Downloading: http://myrepo/nexus/content/repositories/releases/.../maven-metadata.xml 
[INFO] 603 B 
[INFO]   
[INFO] Downloaded: http://myrepo/nexus/content/repositories/releases/.../maven-metadata.xml (603 B at 1.5 KB/sec) 
[INFO] Uploading: http://myrepo/nexus/content/repositories/releases/.../maven-metadata.xml 
[INFO] 634 B 
[INFO]   
[INFO] Uploaded: http://myrepo/nexus/content/repositories/.../maven-metadata.xml (634 B at 1.6 KB/sec) 

अब मैं http://myrepo/nexus/content/repositories/.../maven-metadata.xml यह इस तरह दिखता है डाउनलोड:

<metadata> 
<groupId>simple</groupId> 
<artifactId>simple</artifactId> 
<versioning> 
<latest>0.5.8</latest> 
<release>0.5.8</release> 
<versions> 
<version>0.5.9</version> 
<version>0.1</version> 
<version>0.3</version> 
<version>0.4</version> 
<version>0.5.1</version> 
<version>0.5.2</version> 
<version>0.5.3</version> 
<version>0.5.4</version> 
<version>0.5.5</version> 
<version>0.5.6</version> 
<version>0.5.7</version> 
<version>0.5.8</version> 
</versions> 
<lastUpdated>20110202190804</lastUpdated> 
</versioning> 
</metadata> 

मेरी नवीनतम और हाल ही में रिलीज़ संस्करण "नवीनतम के रूप में चिह्नित नहीं किया गया है "और" रिलीज "।

अब मैं नेक्सस वेबयूआई के अंदर "मेटाडाटा पुनर्निर्माण" करता हूं। मैं इसके बाद मेटाडेटा डाउनलोड करता हूं। यह इस

<metadata> 
    <groupId>simple</groupId> 
    <artifactId>simple</artifactId> 
    <versioning> 
    <latest>0.5.9</latest> 
    <release>0.5.9</release> 
    <versions> 
     <version>0.1</version> 
     <version>0.3</version> 
     <version>0.4</version> 
     <version>0.5.1</version> 
     <version>0.5.2</version> 
     <version>0.5.3</version> 

     <version>0.5.4</version> 
     <version>0.5.5</version> 
     <version>0.5.6</version> 
     <version>0.5.7</version> 
     <version>0.5.8</version> 
     <version>0.5.9</version> 

    </versions> 
    <lastUpdated>20110202191117</lastUpdated> 
    </versioning> 
</metadata> 

इस गठजोड़ में या Maven में एक बग की तरह लगता है कि अब लग रहा है? क्या किसी के पास इसका समाधान है?

+1

मैं Maven मेलिंग सूची पर चर्चा करने के लिए सुझाव है। –

+6

स्टैक ओवरफ्लो इस तरह के प्रश्नों के लिए बस महान है। मुख्य कारण fpr Stackoverflow को 1,01 + मेलिंग सूचियों पर सब्सक्राइब नहीं किया जाना है। – Janning

+0

हाँ .. यह एक बग की तरह दिखता है। क्या आपने इस बारे में समस्या ट्रैकर में मौजूद है या नहीं? –

उत्तर

6

क्या आपने अपनी तैनाती प्लगइन कॉन्फ़िगरेशन में updateReleaseInfo को सही करने की कोशिश की है?

<plugin> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.5</version> 
    <configuration> 
     <updateReleaseInfo>true</updateReleaseInfo> 
    </configuration> 
</plugin> 

ध्यान दें, मैं इस कोशिश की है नहीं, बस तैनाती प्लगइन डॉक्स खुला जब मैं इस सवाल को पढ़ने के लिए हुआ है और यह उचित लगता है।

Maven docs से:

updateReleaseInfo: 
Parameter used to update the metadata to make the artifact as release. 

Type: boolean 
Required: No 
Expression: ${updateReleaseInfo} 
Default: false 
+1

मैंने कोशिश की लेकिन मुझे नहीं लगता कि यह एक समाधान है। वास्तव में यह 'maven-metadata.xml' में' 'को केवल जो भी संस्करण अपलोड कर रहा है, उस पर सेट करने के लिए मजबूर करेगा, भले ही टीआई का अंत-स्नैपशॉट समाप्त हो। यह बिल्कुल अद्यतन नहीं करता है। –

+0

@Xan, मेरा मानना ​​है कि आप केवल उस कॉन्फ़िगरेशन का उपयोग करना चाहते हैं यदि आप वास्तव में रिलीज़ कर रहे थे, स्नैपशॉट परिनियोजन के लिए नहीं। ऐसा करने के 2 तरीके हैं; या तो '' के अंदर दिखाए गए कॉन्फ़िगरेशन को शामिल करें जिसे आप रिलीज़ के लिए सक्रिय करते हैं (उदाहरण के लिए 'mvn -Prelease रिलीज: प्रदर्शन' जहां '-प्रलीज' आईडी को "रिलीज़" के साथ प्रोफ़ाइल सक्रिय करता है। या, आप पूरी तरह से तैनाती कॉन्फ़िगरेशन को छोड़ सकते हैं और उपयोग कर सकते हैं 'mvn -DupdateReleaseInfo = सच्ची रिलीज: प्रदर्शन करें जो वही करता है। – user944849

+4

मुझे विश्वास है कि कोई भी यहां रिलीज़ करने के बारे में बात नहीं कर रहा है, यही कारण है कि मेटाडेटा अपडेट नहीं किया गया है?! मुझे नेक्सस पर हर 30 सेकेंड में नौकरी चलाने की ज़रूरत है इसे रीफ्रेश करें या मुझे नवीनतम कलाकृति कभी नहीं मिल सकती है। वास्तव में मैंने हाल ही में निर्मित सफलतापूर्वक निर्मित आर्टिफैक्ट को तैनात करने के लिए हडसन पर निरंतर एकीकरण के लिए एक नौकरी लागू की। समस्या यह है कि मेटाडाटा में नवीनतम टैग सही ढंग से सेट नहीं है। –