मावेन का उपयोग करते हुए रिलीज़ निर्भरता का बल पुनः डाउनलोड


135

मैं निर्भरता एक्स के साथ एक परियोजना पर काम कर रहा हूं। एक्स, बदले में, वाई पर निर्भर करता है।

मैंने अपने प्रोजेक्ट के पोम में स्पष्ट रूप से वाई को शामिल किया। हालांकि, इसका इस्तेमाल नहीं किया गया था और चीजों को साफ करने के लिए, मैंने इसे एक निर्भरता के रूप में एक्स के पोम में जोड़ा। X को रिलीज़ निर्भरता के रूप में चिह्नित किया गया है।

समस्या यह है कि वाई को मेरे प्रोजेक्ट के पोम से हटाने और एक्स के पोम में जोड़ने के बाद, मेरा प्रोजेक्ट इसे नहीं उठा रहा है mvn -U clean package। मुझे पता है कि हम स्नैपशॉट अपडेट करते हैं लेकिन रिलीज़ नहीं होते हैं।

तो, ~ / .m2 / रिपॉजिटरी डायरेक्टरी को डिलीट किए बिना मैं एक्स के पोम को फिर से डाउनलोड करने के लिए कैसे बाध्य कर सकता हूं? इसके अलावा, मैंने दौड़ने की कोशिश की dependency:purge-local-repositoryऔर यह काम भी नहीं किया।


आपने प्रश्नों को "maven-2" के रूप में टैग किया है। इस समस्या को हल करने के लिए Maven 3 में -U विकल्प जोड़ा गया था। मैं अपग्रेड करने का सुझाव दूंगा।
मार्क ओ'कॉनर

बस एक कार्यप्रणाली के नजरिए से, यदि आप बदल रहे हैं X, तो यह एक नया रिलीज का गठन करना चाहिए, भले ही यह केवल पैच नंबर परिवर्तन हो: 1.3-> 1.3.1। तो, इस समस्या को खत्म कर दिया जाएगा।
जफॉ जौ 27'16

हालाँकि, स्नैपशॉट के साथ भी इसी तरह के मुद्दे होना संभव है, इसलिए कुछ उत्तर देना अच्छा है।
jpaugh

जवाबों:


165

आप मावेन को पुन: डाउनलोड निर्भरता नहीं बना सकते हैं, लेकिन इसके बजाय आप क्या कर सकते हैं निर्भरता शुद्ध करने के लिए जो गलत तरीके से डाउनलोड किए गए थे mvn dependency:purge-local-repository

देखें: http://maven.apache.org/plugins/maven-d dependency-plugin / purge-local-repository-mojo.html


11
एक ही तरह की बात नहीं है?
शविश

2
इसके लिए फ़ाइल सिस्टम तक पहुँच की आवश्यकता नहीं होती है जो एक समस्या हो सकती है यदि आप केवल निर्माण कार्य (उदाहरण के लिए CI सिस्टम के लिए) कॉन्फ़िगर कर रहे हैं।
ओलिवर ड्रोटबोहम

2
यदि एक से अधिक प्रोजेक्ट चलते हैं mvn dependency:purge-local-repository clean package, तो एक प्रोजेक्ट स्थानीय रिपॉजिटरी में उसी निर्भरता को हटा सकता है, जबकि दूसरा प्रोजेक्ट कंपाइल हो रहा है। कैसे बचें?
vikyd

55

मैंने अभी-अभी अपना ~ / .m2 / रिपॉजिटरी डिलीट किया और इसने फिर से डाउनलोड को मजबूर किया;)


1
यह एक अंतिम उपाय के रूप में मदद करता है, मेरे पास एक परियोजना थी जहां ग्रहण और मावेन थोड़ा "भ्रमित" थे। बस .m2 फ़ोल्डर को हटाने से प्रोजेक्ट संकलित हो जाता है और सही तरीके से चलता है।
लियोनार्डो

5
चयनात्मक रूप से उन निर्भरता को हटाना संभव है जिन्हें आप जानते हैं कि भंडार के अंदर से ताज़ा करने की आवश्यकता है। एक मैनुअल पर्स, यदि आप करेंगे।
jpaugh

41

मुझे लगता है कि निम्नलिखित आदेश आपकी मदद कर सकते हैं!


mvn -U clean install

4
प्रश्न में मावेन का उपयोग करके निर्भरता जारी करना । नहीं, यह बेहतर टिप्पणी हो सकती है।
नमन

31

अली टोकमेन जवाब के लिए धन्यवाद। मैं निम्नलिखित आदेश के साथ विशिष्ट स्थानीय निर्भरता को हटाने के लिए बाध्य करने में कामयाब रहा:

mvn dependency:purge-local-repository -DmanualInclude=com.skyfish:utils

इसके साथ, यह utilsमेरे .m2 / रिपॉजिटरी से निकालता है और utilsजब मैं चलाता हूं तो यह हमेशा JAR निर्भरता को फिर से डाउनलोड करता है mvn clean install


1
मुझे बस एक निर्भरता को फिर से डाउनलोड करने के लिए मावेन को मजबूर करने के तरीके की आवश्यकता थी। यह एकमात्र उत्तर है जो वास्तव में ऐसा करता है, जबकि अन्य उत्तर सब कुछ हटाने का सुझाव देते हैं। धन्यवाद
smac89

14

प्रोजेक्ट राइट क्लिक-> मावेन -> प्रोजेक्ट अपडेट करें और स्क्रीन शॉट में चेकबॉक्स की जांच करें। यह रिलीज के रूप में अच्छी तरह से अद्यतन करेगा :)

यहां छवि विवरण दर्ज करें


5
यह जानना अच्छा होगा कि उन्होंने उस "भाग को कैसे जारी किया"।
उलिसे लीरा

इसके लिए धन्यवाद बस मुझे क्या चाहिए।
3

12
mvn clean install -U

-U का मतलब है निर्भरता के बल अद्यतन।

यदि आप स्वच्छ या -यू के बिना एक भी निर्भरता को अपडेट करना चाहते हैं तो आप इसे अपने स्थानीय रेपो से हटा सकते हैं और फिर निर्माण कर सकते हैं।


फिर से, यह केवल स्नैपशॉट निर्भरता को फिर से डाउनलोड करता है।
जरदोज़ो

6

जब आपने इसे एक्स में जोड़ा था, तो आपको एक्स के संस्करण संख्या में वृद्धि करनी चाहिए थी यानी एक्स-1.2
तो एक्स-1.2 को स्थापित / तैनात किया जाना चाहिए था और आपको एक्स पर अपने प्रोजेक्ट की निर्भरता को नए संस्करण एक्स-1.2 पर निर्भर होना चाहिए।


6

अगर आप ग्रुप आईडी के बारे में जानते हैं X , तो आप इस कमांड का उपयोग सभी को फिर से डाउनलोड करने के लिए कर सकते हैं Xऔर यह निर्भरता है

mvn clean dependency:purge-local-repository -DresolutionFuzziness=org.id.of.x

यह अन्य उत्तरों के समान ही कार्य करता है जो उपयोग करने का प्रस्ताव करता है dependency:purge-local-repository, लेकिन यह केवल संबंधित सभी चीज़ों को हटाता है और डाउनलोड करता है X


4

यदि आप वास्तव में सभी निर्भरताओं को डाउनलोड करने के लिए बाध्य करना चाहते हैं, तो आप पूरे मावेन भंडार को फिर से शुरू करने का प्रयास कर सकते हैं। पहले से वर्णित इस लेख की तरह , आप उपयोग कर सकते हैं:

mvn -Dmaven.repo.local=$HOME/.my/other/repository clean install

3

बस हटाएं ~ / .m2 / रिपॉजिटरी ..... / वास्तविक_पथ जहां अमान्य एलओसी आ रहा है क्योंकि यह हटाए गए जार फ़ाइलों को फिर से डाउनलोड करने के लिए मजबूर करता है। जहां त्रुटि आ रही है उस विशिष्ट फ़ोल्डर को हटाने के बजाय पूरे रिपॉजिटरी फ़ोल्डर को न हटाएं


0

~/.m2/repositoryवसीयत को हटाने से आपकी समस्या दूर हो जाएगी। लेकिन, अगर आपको अभी भी पुराने रखने की जरूरत है तो आप ~/.m2/repositoryअस्थायी रूप से मावेन को बदल सकते हैं।

यदि आप इंटेलीज पर काम कर रहे हैं तो बस मावेन सेटिंग्स पर जाएं और स्थानीय रिपोजिटरी पथ को कहीं और बदल दें। आपको वहाँ के पास ओवरराइड चेकबॉक्स पर टिक करने की आवश्यकता हो सकती है।

यहां छवि विवरण दर्ज करें


-1

ऊपर दिए गए अधिकांश उत्तर समस्या का समाधान करेंगे।

लेकिन अगर आप IntelliJ का उपयोग करते हैं और चाहते हैं कि यह आपके लिए अपने आप ठीक हो जाए, तो Maven Settings पर जाएं।

निर्माण, निष्पादन, तैनाती -> निर्माण उपकरण -> मावेन

यहां छवि विवरण दर्ज करें

ऑफ़लाइन काम अक्षम करें

हमेशा स्नैपशॉट अपडेट करें (जब आवश्यक हो स्विच करें)


1
मैं सराहना करता हूं कि अगर आप इस समय आप नीचे होने के कारण को साझा कर सकते हैं। धन्यवाद।
अभिषेक नंदगांवकर

1
संभवतः, क्योंकि स्नैपशॉट रिलीज़ नहीं होते हैं, इसलिए यह समस्या का समाधान नहीं करता है।
सोरू

-2

पथ बनाने के लिए जाएं ... मौजूदा मावेन लाइब्रेरी को हटाएं यू जोड़ा ... क्लिक करें लाइब्रेरी जोड़ें ... मावेन प्रबंधित निर्भरता पर क्लिक करें ... फिर मावेन परियोजना सेटिंग्स पर क्लिक करें ... समाधान मावेन निर्भरता की जांच करें चेक बॉक्स..यह सब डाउनलोड करें मावेन निर्भरता


2
यह कुछ आईडीई का उपयोग करता है, एक धारणा जो प्रश्न का समर्थन नहीं करती है, और आपने यह भी नहीं बताया कि आईडीई क्या है!
फिल
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.