2012-05-10 13 views
6

मेरे जावा/Maven परियोजना "testproject" कहा जाता है मेरी जेनकींस और गठजोड़ रेपो के साथ झुका है:जेनकींस Maven करने के लिए गठजोड़ जार तैनात - विरूपण साक्ष्य नामकरण

....  
<distributionManagement> 
    <!-- use the following if you're not using a snapshot version. --> 
    <repository> 
     <id>nexus</id> 
     <name>RepositoryProxy</name> 
     <url>http://nexus:8080/nexus/content/repositories/releases</url> 
    </repository> 
    <!-- use the following if you ARE using a snapshot version. --> 
    <snapshotRepository> 
     <id>nexus</id> 
     <name>RepositoryProxy</name> 
     <url>http://nexus:8080/nexus/content/repositories/snapshots</url> 
    </snapshotRepository> 
</distributionManagement> 
...... 

में:

मेरे pom.xml तरह लग रहा है मेरी जेनकींस की स्थापना की, मेरे पास है:

Build - maven3 - clean deploy 

जैसी उम्मीद थी, जेनकींस जेनकींस से सांत्वना उत्पादन में Nexus.Look लिए विरूपण साक्ष्य अपलोड करता है का निर्माण, नीचे के रूप में:

[INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ testproject --- 
[INFO] Building jar: /var/lib/jenkins/workspace/testproject/target/testproject-0.1-SNAPSHOT.jar 
[INFO] 
[INFO] --- maven-install-plugin:2.3.1:install (default-install) @ testproject --- 
[INFO] Installing /var/lib/jenkins/workspace/testproject/target/testproject-0.1-SNAPSHOT.jar to /var/lib/jenkins/.m2/repository/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1- SNAPSHOT.jar 
[INFO] Installing /var/lib/jenkins/workspace/testproject/pom.xml to /var/lib/jenkins/.m2/repository/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-SNAPSHOT.pom 
[INFO] 
[INFO] --- maven-deploy-plugin:2.5:deploy (default-deploy) @ testproject --- 
Downloading: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/maven-metadata.xml 
Downloaded: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/maven-metadata.xml (1012 B at 28.2 KB/sec) 
Uploading: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-20120509.161644-74.jar 
Uploaded: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-20120509.161644-74.jar (47 KB at 748.5 KB/sec) 
Uploading: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-20120509.161644-74.pom 
Uploaded: http://nexus:8080/nexus/content/repositories/snapshots/com/dummy/testproject/0.1-SNAPSHOT/testproject-0.1-20120509.161644-74.pom (6 KB at 149.3 KB/sec) 

प्रश्न हैं:

को देखते हुए संस्करण मैं pom.xml में निर्दिष्ट

<version>0.1-SNAPSHOT</version> 
  1. है कैसे जेनकींस को testproject- 0.1-20120509.161644-74 .jar अपलोड आ नेक्सस? 2012050 9 .161644-74 सामान कहां से आ रहा है?

  2. यदि टाइमस्टैम्प 20120509.161644-74 अपलोड करने से पहले जेनकिंस द्वारा उत्पन्न होता है, तो क्या मैं इसका प्रारूप कॉन्फ़िगर कर सकता हूं? $ {टाइमस्टैम्प} - - मैं testproject-01 की तरह कुछ करना चाहते हैं {reversionId} $ .jar

उत्तर

8

maven deploy plugin page कहता है कि "डिफ़ॉल्ट, जब एक विरूपण साक्ष्य का एक स्नैपशॉट संस्करण भंडार के लिए तैनात किया गया है, एक टाइमस्टैम्प इसके लिए पर्याप्त है "। इसलिए, जब आप mvn deploy पर कॉल करते हैं तो यह प्लगइन द्वारा बनाया गया है।

मुझे नहीं पता कि आप 2 में क्या चाहते हैं) संभव है। मुझे लगता है कि यह मैवेन के लिए कुछ परेशानी पैदा कर सकता है।

जब आप स्नैपशॉट निर्भरताओं के साथ मेवेन का उपयोग करते हैं, तो टाइमस्टैम्प का उपयोग स्नैपशॉट के नवीनतम संस्करण की जांच के लिए किया जाता है। स्नैपशॉट्स के प्रारूप को बदलने से शायद यह तंत्र विफल हो जाएगा।

+2

और एक और बात: यह केवल मैवेन 3 के बाद से है, कुछ और [जानकारी] (http://stackoverflow.com/questions/4275466/how-do-you-deal-with-maven-3-timestamped- स्नैपशॉट्स-कुशलतापूर्वक) – Miquel

+0

मुझे लगता है कि इससे मदद मिल सकती है: http://maven.apache.org/plugins/maven-deploy-plugin/examples/disabling-timestamps-suffix.html –

+1

यही कारण है कि मैंने इस लिंक को मेरे उत्तर में पोस्ट किया .. :-) – Behe

2

टाइमवेम्प को मैवेन 3 के बाद से स्नैपशॉट संस्करण में जोड़ा गया है। मैवेन 2 के साथ निष्पादित होने पर एक ही तैनाती प्लगइन कोई टाइमस्टैम्प नहीं जोड़ता है।

1

मैवेन स्नैपशॉट के संस्करण को लॉक करने का तरीका है, इसलिए एक विशिष्ट संस्करण को किसी अन्य निर्माण द्वारा खपत किया जा सकता है - यह समस्या हल करती है, हालांकि इसमें कमियां होती हैं।

मैं स्नैपशॉट वाले घरों के चारों ओर चले गए हैं। मेरा मानना ​​है कि वे बस बुराई हैं। पुनरावर्तनीयता बनाएं सिरदर्द है क्योंकि एक विशेष कोड सबमिशन के साथ भंडार में तैनात एक टाइमस्टैम्प स्नैपशॉट संस्करण को सहसंबंधित करना कठिन है।

अपने आप को गंभीर परेशानी बचाएं और अपने बिल्ड सर्वर को एमवीएन संस्करणों को कॉल करने के लिए प्राप्त करें: सेट-डीन्यूवर्सन = .. $ {build.number} बिल्डिंग/तैनाती से पहले सर्वर बनाएं। अपने स्रोत कोड को उसी संस्करण के साथ टैग करें। यदि बिल्ड विफल रहता है, तो इससे कोई फर्क नहीं पड़ता, बिल्ड को pom.xml फ़ाइल को अप्रासंगिक रूप से परिवर्तित करने वाले वर्कस्पेस को रीफ्रेश करने के लिए कॉन्फ़िगर किया जा सकता है।

स्नैपशॉट्स का उपयोग करने में एक और विशिष्ट मैवेन "गोचाचा" यह है कि आप सुनिश्चित नहीं हैं कि निर्माण के दौरान आपके पोम कितने निर्भरता का उपभोग कर सकते हैं, इसलिए सुनिश्चित करें कि आपकी बिल्ड निर्भरता निर्भर करती है: पेड़ और निर्भरता: सूची, आपके पहले अन्य एमवीएन तर्क निर्माण। (यह आपको ट्रांजिटिव रिज़ॉल्यूशन के दौरान समान कलाकृति के संस्करण विसंगतियों की पहचान करने में मदद करेगा - मैं अब अपने निर्माण में निर्भरता प्रबंधन अनुभाग द्वारा कसम खाता हूं)।

जबकि मैवेन बहुत लंबा रास्ता तय करता है, "मेवेन वे" हमेशा सबसे अच्छा समाधान नहीं होता है। यह काफी निरंतर वितरण सर्वोत्तम प्रथाओं के लिए पर्याप्त परिपक्व नहीं है, लेकिन आप अभी भी इसके साथ प्रभावी ढंग से काम कर सकते हैं, जिससे आप नुकसान के बारे में जानते हैं।

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