2013-02-14 16 views
5

मेरा मेवेन आर्टिफैक्ट एक नेक्सस स्नैपशॉट भंडार में तैनात किया गया है। वहाँ, यह सही निर्देशिका में संग्रहीत किया जाता है, लेकिन इसके फ़ाइल नाम निम्नलिखित पैटर्न:मैवेन: आर्टिफैक्ट फ़ाइल नाम से स्नैपशॉट प्रत्यय क्यों गुम है?

mylibrary-1.0-20130213.125827-2.jar 

हालांकि, Maven कि स्नैपशॉट डाउनलोड करने के लिए विफल रहता है। त्रुटि लॉग के अनुसार, Maven निम्न फ़ाइल नाम उम्मीद लगता है:

<repositories> 
    <repository> 
     <id>mycompany-all</id> 
     <url>https://servername/nexus/content/groups/mycompany/</url> 
    </repository> 
</repositories> 

<distributionManagement> 
    <repository> 
     <id>mycompany-releases</id> 
     <url>https://servername/nexus/content/repositories/releases/</url> 
    </repository> 
    <snapshotRepository> 
     <id>mycompany-snapshots</id> 
     <url>https://servername/nexus/content/repositories/snapshots/</url> 
    </snapshotRepository> 
</distributionManagement> 

नोट:: गठजोड़ समूह दोनों शामिल releases और snapshots रेपो

mylibrary-1.0-SNAPSHOT.jar 

ये मेरी पोम में भंडार सेटिंग नहीं है ।

मैं settings.xml में इन रेपोस कॉन्फ़िगर नहीं किया - समस्या यह है कि है? या मैं और क्या गलत कर रहा हूँ?

+1

आप कहते हैं "* मेवेन अपेक्षा करता है ... *"। जब आप मेरी सलाह का पालन करते हैं और 'mylibrary-1.0-20130213.125827-2.jar'' mylibrary-1.0-SNAPSHOT' के रूप में संदर्भित करते हैं, तो क्या आपको कोई त्रुटि मिलती है? –

उत्तर

5

मैं इसे settings.xml इस तरह के खजाने जोड़कर काम कर दिया। मुझे संदेह है कि जब मैवेन जानता है कि यह स्नैपशॉट रेपो से संबंधित है, तो यह अद्वितीय और बिना दोनों के प्रयास करता है (डंकन जोन्स का जवाब देखें)।

ध्यान दें कि हमारे मामले में इन ब्लॉकों क्योंकि हम कस्टम Maven प्लग इन हो pluginRepositories के रूप में डुप्लिकेट किया जाना था।

+1

वास्तव में क्या हो रहा है कि Maven पढ़ता /com/mycompany/mylibrary/1.0-SNAPSHOT फ़ोल्डर में Maven-metadata.xml है। इस एक्सएमएल maven क्या नवीनतम टाइमस्टैम्प और संख्या में इसका इस्तेमाल करना चाहिए निर्माण बताता है। तब मेवेन घूमता है और उस विशिष्ट अद्वितीय संस्करण के लिए अनुरोध तैयार करता है। Maven Maven-metadata.xml नहीं मिल रही है, यदि आप एक स्नैपशॉट भंडार नहीं था, जैसा भी मामला हो सकता है, यह अगर यह वहाँ -SNAPSHOT संस्करण के लिए एक ओलों मेरी अनुरोध देखने के लिए कर देगा। –

13

आपके द्वारा पोस्ट किया गया पैटर्न (mylibrary-1.0-20130213.125827-2.jar) एक अद्वितीय स्नैपशॉट संस्करण है। Maven 3 बलों आप विरूपण साक्ष्य नामकरण के इस प्रकार का उपयोग करने के लिए, लेकिन Maven 2 में यह इस तरह के रूप में एक बयान के साथ रोका जा सकता है:

<distributionManagement> 
    ... 
    <snapshotRepository> 
    ... 
    <uniqueVersion>false</uniqueVersion> 
    </snapshotRepository> 
    ... 
</distributionManagement> 

अपनी परियोजना में एक विशिष्ट स्नैपशॉट का उपयोग करने के लिए, के रूप में यह घोषणा करते हैं:

<dependency> 
    <groupId>com.foo</groupId> 
    <artifactId>mylibrary</artifactId> 
    <version>1.0-20130213.125827-2</version> 
</dependency> 

नवीनतम जाना जाता स्नैपशॉट का उपयोग करने के लिए, यह घोषणा "पुरानी शैली":

<dependency> 
    <groupId>com.foo</groupId> 
    <artifactId>mylibrary</artifactId> 
    <version>1.0-SNAPSHOT</version> 
</dependency> 

आप इस similar question सहायक के रूप में अच्छी तरह से करने के लिए इस सवाल का जवाब मिल सकता है।

<repositories> 
    <repository> 
     <id>mycompany-releases</id> 
     <url>https://servername/nexus/content/repositories/releases/</url> 
     <releases><enabled>true</enabled></releases> 
     <snapshots><enabled>false</enabled></snapshots> 
    </repository> 
    <repository> 
     <id>mycompany-snapshots</id> 
     <url>https://servername/nexus/content/repositories/snapshots/</url> 
     <releases><enabled>false</enabled></releases> 
     <snapshots><enabled>true</enabled></snapshots> 
    </repository> 
</repositories> 

फिर, स्नैपशॉट जार फ़ाइलों ठीक डाउनलोड किया गया:

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