2015-03-12 6 views
5

कमांड लाइन मदद में, मैं अद्यतन के लिए कि Maven "चेक" देखें:मैवेन: '-यू, - अपडेट-स्नैपशॉट्स' वास्तव में क्या करता है?

-U,--update-snapshots     Forces a check for updated 
             releases and snapshots on remote 
             repositories 

हालांकि, स्टैक ओवरफ़्लो पर सबसे सवाल है कि अद्यतन करने के लिए इस विकल्प बलों Maven मतलब। क्या इसका मतलब है कि यह निर्भरताओं के पुन: डाउनलोड को मजबूर करता है?

उदा। https://stackoverflow.com/a/9697970/1119779

+0

क्या आपके स्पष्टीकरण आपके लिए सहायक थे? – Alexander

+0

हां, यह समझा जाता है कि यह पूरा हो गया है। धन्यवाद – imagineerThat

उत्तर

4

आप -U उपयोग नहीं करते हैं, Maven परिणाम कैश हो सकता है - भले ही निर्भरता नहीं पाया जा सका (जैसे क्योंकि आप गठजोड़ [या एक जैसे], अनुपलब्ध गलत तरह से कॉन्फ़िगर, निर्भरता [अभी तक] या जो कुछ भी शामिल नहीं किया था)।

यदि ऐसा है तो। मेवेन रिपोजिटरी के updatePolicy का पालन करता है, जो बताता है कि निर्भरता अद्यतन होने पर कितनी बार (यदि कभी) मैवेन जांचता है। डिफ़ॉल्ट daily है इसलिए यदि एक अस्थायी त्रुटि मेवेन को निर्भरता डाउनलोड नहीं करती है, तो मैवेन फिर से प्रयास करने में एक दिन लग सकता है। -U इसे ओवरराइट करता है और इसे पर बताता है अब देखें।

-U एक निर्भरता दोबारा डाउनलोड नहीं करता है अगर यह पहले ही डाउनलोड हो चुका है और यदि चेकसम एक जैसा है! यह केवल चेकसम के लिए जाँच करता है।

बीटीडब्ल्यू: मेवेन एक टाइमस्टैम्प फ़ाइल का उपयोग करता है जिसमें निर्भरता + ".lastUpdated" के समान नाम है, यह जानने के लिए कि किस सर्वर पर निर्भरता आखिरी बार जांच की गई है। जैसे updatePolicy के लिए ~/.m2/repository/org/springframework/spring-webmvc/3.1.2.RELEASE/spring-webmvc-3.1.2.RELEASE.jar.lastUpdated

उदाहरण:

<repositories> 
    <repository> 
    <releases> 
     <enabled>false</enabled> 
     <updatePolicy>always</updatePolicy> 
    </releases> 
    <snapshots> 
     <enabled>true</enabled> 
     <updatePolicy>never</updatePolicy> 
    </snapshots> 
    <!-- ... --> 
    </repository> 
    <!-- ... --> 
</repositories> 

updatePolicy के बारे में अधिक जानकारी के लिए http://maven.apache.org/pom.html#Repositories देखें।

+0

चीजों को गति देने के लिए, मैं प्रत्येक निर्माण से पहले हमारे एम 2 रेपो को हटाने के बजाय हमारे स्थानीय रेपो को अपडेट करने के लिए एमवीएन-यू का उपयोग करने के लिए स्विच करना चाहता हूं। क्या मुझे भरोसा है कि इससे हमारे निर्माण के व्यवहार में कोई बदलाव नहीं आता है? – imagineerThat

+0

यह आपके पूरे स्थानीय एम 2 रेपो को अपडेट नहीं करता है, लेकिन यह जांच करता है कि आपकी परियोजना का उपयोग करने वाले उन मैवेन निर्भरताओं के लिए कोई अपडेट हैं या नहीं। बीटीडब्लू: यह केवल स्नैपशॉट निर्भरताओं के मामले में होना चाहिए - जारी किए जाने के बाद जारी किए गए मेवेन कलाकृतियों को बदला नहीं जाना चाहिए! – Alexander

1

यह जोड़ना महत्वपूर्ण है कि निष्पादन mvn -U रिमोट स्नैपशॉट जार के साथ आपके स्थानीय स्नैपशॉट जार ओवरराइड करेगा।

-U तर्क के बिना, स्थानीय स्नैपशॉट ओवरराइड नहीं होंगे।

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