मावेन अपडेट को मजबूर करने के लिए कैसे?


730

मैंने अपनी पहले से काम कर रही परियोजना को दूसरे कंप्यूटर पर आयात किया और इसने निर्भरता डाउनलोड करना शुरू कर दिया।

जाहिरा तौर पर मेरा इंटरनेट कनेक्शन दुर्घटनाग्रस्त हो गया और अब मुझे निम्नलिखित मिले:

    >Build errors for comics; org.apache.maven.lifecycle.LifecycleExecutionException:
    Failed to execute goal on project comicsTest: Could not resolve dependencies for project comicsTest:comicsTest:war:0.0.1-SNAPSHOT:
    The following artifacts could not be resolved:
    org.springframework:spring-context:jar:3.0.5.RELEASE,
    org.hibernate:hibernate-entitymanager:jar:3.6.0.Final,
    org.hibernate:hibernate-core:jar:3.6.0.Final,
    org.hibernate:hibernate-commons-annotations:jar:3.2.0.Final,
    org.aspectj:aspectjweaver:jar:1.6.8,
    commons-lang:commons-lang:jar:2.5,

    >mysql:mysql-connector-java:jar:5.1.13: Failure to transfer org.springframework:spring-context:jar:3.0.5.RELEASE from http://repo1.maven.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced.

    >Original error: Could not transfer artifact org.springframework:spring-context:jar:3.0.5.RELEASE from central (http://repo1.maven.org/maven2): No response received after 60000

मैं अपडेट करने के लिए मैवेन को कैसे बाध्य करूं?


साइड नोट: मेरे पास एटलसियन मावेन (प्लगइन एसडीके से) के साथ यह मुद्दा था और नए संस्करण में अपग्रेड करने से समस्या हल हो गई।
विरोन

जवाबों:


1596
mvn clean install -U

-Uमतलब स्नैपशॉट निर्भरता के बल अद्यतन । रिलीज़ निर्भरताएँ इस तरह अपडेट नहीं की जा सकतीं।


32
मैं lwpro2 से सहमत हूं, इससे मेरी समस्या भी हल हो गई। सिर्फ mvan साफ करना काफी नहीं है। नवी का जवाब समस्या को हल करने के लिए पर्याप्त नहीं है।
आर। वैन ट्विस्क

1
मेरा मानना ​​है कि यह अधिक जटिल है यदि आप आर्टिफैक्ट का उपयोग कर रहे थे और रिपॉजिटरी आईडी "सेंट्रल" का उपयोग कर रहे थे, क्योंकि मेटाडेटा स्पष्ट रूप से साफ नहीं होता है।
ggb667

2
यह वास्तव में स्नैपशॉट निर्भरता जार को अद्यतन करने के लिए प्रतीत नहीं होता है, बस मेटाडेटा।
फ्रोजन मटर की रोडी

यदि यह .lastupdated फ़ाइल के कारण होता है, तो पिछले असफलता से डाउनलोड करने पर उत्पन्न, यह विधि काम नहीं करेगी, हमें रॉबर्ट रॉबर्ट के जवाब की तरह कुछ चाहिए
Junchen लियू

1
मैं पिछले संस्करणों और 2.0.4 तक की मदद के लिए देख रहा हूँ, -U ध्वज के लिए विवरण था: "-U, - अपडेट-स्नैपशॉट सभी स्नैपशॉट को अद्यतन करें, भले ही रिपॉजिटरी नीतियों की परवाह किए बिना" 2.0.5 से शुरू हो, यह बन गया: "-यू, - अपडेट-स्नैपशॉट्स फॉरवर्ड अपडेट को चेक जारी करता है और रिमोट रिपॉजिटरी पर स्नैपशॉट" और तब से ऐसा ही है। दोनों संस्करण 2007 में जारी किए गए थे। मुझे आश्चर्य है कि क्या उत्तर को रिलीज के लिए भी संपादित किया जाना चाहिए?
क्लेबर्ज़

93

यदि आपकी स्थानीय रिपॉजिटरी को किसी तरह स्नैपशॉट के विपरीत जार जारी किया जाता है ( -Uऔर --update-snapshotsकेवल स्नैपशॉट अपडेट किया जाता है), तो आप निम्न का उपयोग करके स्थानीय रेपो को शुद्ध कर सकते हैं:

 mvn dependency:purge-local-repository

आप शायद फिर से साफ और स्थापित करना चाहते हैं:

 mvn dependency:purge-local-repository clean install

Https://maven.apache.org/plugins/maven-d dependency-plugin/examples/purging-local-repository.html पर अधिक जानकारी उपलब्ध है


8
जैसे ही मैंने किया mvn dependency:purge-local-repository, उसने फिर से सभी आश्रितों को फिर से डाउनलोड किया, जो कि वास्तव में मैं चाहता था
smac89

92

-U सभी निर्भरता के अद्यतन को मजबूर करने के लिए लगता है।

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

अद्यतन करने के लिए नीचे दिए गए उदाहरण slf4j-api 1.7.1-SNAPSHOT:

rm -rf ~/.m2/repository/org/slf4j/slf4j-api/1.7.1-SNAPSHOT
mvn compile

यह अच्छी तरह से काम करता है यदि आप मावेन के अलावा किसी अन्य उपकरण का उपयोग कर रहे हैं जो आपके स्थानीय मावेन भंडार का संदर्भ देता है।
मंसूर सिद्दीकी

57

यहाँ सभी उत्तर मेरे लिए कारगर नहीं थे। मैंने हथौड़ा विधि का उपयोग किया:

find ~/.m2/ -name "*.lastUpdated" | xargs rm

उस समस्या को ठीक किया :-)


@ DJ2 यह -ndirectory में सभी फाइलों को हटा देता है .m2जिसका नाम है*.lastUpdated
sjngm

find ~/.m2/ -name "*.lastUpdated" -deleteखतरे के बिना xargsया rmकुछ सीमाओं को पार कर जाएगा (यदि कई फाइलें मिली हैं)।
एक एसजे

45

से प्रभावी ढंग से कर सकते हैं Eclipse IDE। बेशक अगर आप इसका इस्तेमाल कर रहे हैं।

Project_Name->Maven->Update Project Configuration->Force Update of Snapshots/Releases

1
मैंने @ lwpro2 के उत्तर में कमांड लाइन संस्करण किया, जो मुझे कमांड लाइन पर निर्माण करने देता है , लेकिन तब मैं ग्रहण के भीतर निर्माण नहीं कर सका। ऐसा करने से इसे ग्रहण के माध्यम से निर्माण करने के लिए मिला।
ब्रिक

मेरे लिए केवल तभी काम करता है जब मैं अपडेट को निष्पादित करने के बाद ग्रहण को बंद और फिर से खोल देता हूं।
केकला

33

यदि कोई व्यक्ति केवल प्रोजेक्ट की स्नैपशॉट निर्भरता को अद्यतन करना चाहता है और वह कलाकृतियों को स्थापित नहीं करना चाहता है:

mvn dependency:resolve -U

अपने आईडीई में निर्भरता को फिर से लाने के लिए मत भूलना। IDEA में आपको pom फाइल पर राइट क्लिक करना होगा और Maven -> Reimport को चुनना होगा


13

यदि आप अनिश्चित हैं कि आपके स्थानीय भंडार के अंदर क्या है, तो मैं विकल्प के साथ एक बिल्ड फायर करने की सलाह देता हूं:

-Dmaven.repo.local=localrepo

इस तरह से आप एक साफ-सुथरे वातावरण में निर्माण करना सुनिश्चित करेंगे।


5
इस कमांड का अर्थ है कि स्थानीय रिपॉजिटरी होने के लिए फोल्डर लोकेलरेपो का उपयोग करें। यदि आप एक से अधिक प्रोजेक्ट के लिए एक ही प्रोजेक्ट वर्कस्पेस के लिए ठीक हैं, लेकिन खराब हैं, और कुछ दूसरे पर निर्भर हैं। फिर अपनी पूरी राह देने का बेहतर तरीका जैसे -Dmaven.repo.local = / data / my / localrepoDir
tgkprog

9

मेरे मामले में पहले मैंने किया था:

mvn clean install -U

फिर भी यह वही त्रुटि दिखा रहा था तब मैंने परियोजना को बंद कर दिया और फिर से इसे फिर से खोल दिया। अंत में काम किया।


मुझे लगता है कि आप इस परियोजना को फिर से खोलने से बचने के लिए निर्भरता को फिर से कर सकते हैं
GlaIZier

4

यदि आप ग्रहण आईडीई का उपयोग कर रहे हैं तो:

  • प्रोजेक्ट का चयन करें।
  • प्रेस alt + F5, अपडेट मैवेन प्रोजेक्ट के लिए विंडो पॉप अप हो जाएगी।

  • चेक - स्नैपशॉट / रिलीज़ के फोर्स अपडेट और ओके पर क्लिक करें।

अगर का उपयोग कर Intellij IDE

  • सेटिंग्स / मावेन पर जाएं
  • हमेशा स्नैपशॉट अपडेट करें

3

मैंने IntelliJ IDE का उपयोग किया और मुझे एक समान समस्या थी और हल करने के लिए मैंने Maven टैब में "Generate Sources and Update Folders for All Projects" पर क्लिक किया।

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


2

मुझे एक अन्य संदर्भ में त्रुटि मिली है। तो मेरा समाधान उन लोगों के लिए उपयोगी हो सकता है जो इस सवाल पर डगमगाते हैं:

समस्या: मैंने स्थानीय रिपॉजिटरी को दूसरे कंप्यूटर में कॉपी किया है, जिसका किसी विशेष रिपॉजिटरी से कोई संबंध नहीं है। इसलिए मावेन ने अवैध भंडार के खिलाफ कलाकृतियों की जांच करने की कोशिश की।

मेरा समाधान: _maven.repositories फ़ाइलों को निकालें।


2

यह मावेन के बारे में सबसे कष्टप्रद चीजों में से एक है। मेरे लिए निम्नलिखित होता है: यदि मैं अधिक निर्भरता और अधिक से अधिक अनुरोध पर निर्भरता जोड़ता हूं, लेकिन धीमी गति से कनेक्शन है, तो यह डाउनलोड करते समय बंद हो जाता है और समय समाप्त हो जाता है। जब तक सभी निर्भरताएं नहीं निकलती हैं, तब तक .M2 कैश में स्थान धारकों के साथ चिह्नित किया जाता है और जब तक मैं कैश से स्थान धारक की प्रविष्टि (इसे अन्य बताई गई) से हटा नहीं देता, तब तक मावेन इसे (कभी नहीं) उठाएगा।

जहां तक ​​मैं इसे देखता हूं, मावेन या अधिक सटीक ग्रहण मावेन प्लगइन में इस बारे में एक बग है। किसी को इसकी सूचना देनी चाहिए।


2

आपको <maven_home>/confनिर्देशिका के अंतर्गत अपनी सेटिंग । Xml फ़ाइल की जाँच करने की आवश्यकता है ।


1

मुझे एंड्रॉइड-मैप्स-बर्तन निर्भरता के साथ एक ही त्रुटि मिली है। निर्भरता अनुभाग में आरा प्रकार के पैकेज का उपयोग करना मेरी समस्या को हल करता है। डिफ़ॉल्ट प्रकार से जार है इसलिए यह जाँच की जा सकती है कि रिपॉजिटरी में किस प्रकार की निर्भरता डाउनलोड की गई है।


1

ग्रहण से इस समस्या को हल करने के लिए:

1) मावेन pom.xml में निर्भरता नीचे जोड़ें और pom.xml फ़ाइल सहेजें।

<!-- https://mvnrepository.com/artifact/com.thoughtworks.xstream/xstream -->
<dependency>
    <groupId>com.thoughtworks.xstream</groupId>
    <artifactId>xstream</artifactId>
    <version>1.3.1</version>
</dependency>

2) प्रोजेक्ट पर जाएं >> मावेन >> अपडेट प्रोजेक्ट

प्रोजेक्ट का चयन करें और ओके पर क्लिक करें।

3) वैकल्पिक चरण, यदि यह चरण 2 तक हल नहीं हुआ है तो चरण -1 करने के बाद नीचे चरण करें

प्रोजेक्ट पर जाएँ >> मावेन >> अपडेट प्रोजेक्ट >> चेकबॉक्स में चेक करें 'स्नैपशॉट्स / रिलीफ़ के फ़ोर्स अपडेट'

प्रोजेक्ट का चयन करें और ओके पर क्लिक करें।


1

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

पिछले संस्करण के साथ संघर्ष कर रहे किसी व्यक्ति के लिए, निम्नलिखित मददगार हो सकता है-

विंडोज पर:

cd %userprofile%\.m2\repository
for /r %i in (*.lastUpdated) do del %i

लिनक्स पर:

find ~/.m2  -name "*.lastUpdated" -exec grep -q "Could not transfer" {} \; -print -exec rm {} \;

जब भी मावेन किसी भी कारण से निर्भरता को डाउनलोड नहीं कर सकता (कनेक्टिविटी / मौजूद नहीं है आदि), तो यह ".oror = विरूपण साक्ष्य को हस्तांतरित नहीं कर सका" निर्भरता-name.lastUpdate फ़ाइल में संबंधित फ़ोल्डर में $ home / .m2 डायरेक्टरी के तहत है। इन फ़ाइलों को हटाने से मावेन को फिर से निर्भरता लाने की कोशिश करने के लिए मजबूर होना पड़ेगा।


0

यह जोड़ना महत्वपूर्ण है कि mvn -U और बिना -U के साथ चलने का मुख्य अंतर यही है-U आपके स्थानीय स्नैपशॉट जार को दूरस्थ स्नैपशॉट जार से ओवरराइड करेगा।

स्थानीय SNAPSHOT जार स्थानीय mvn installसे ऐसे मामलों में बनाए जाते हैं जहाँ आपके पास अपने proj के अन्य मॉड्यूल होते हैं जो जार उत्पन्न करते हैं।


0

-U का उपयोग अपडेट मावेन रेपो को बल देने के लिए किया जाता है। उपयोग

mvn -U clean install

यह स्वीकृत उत्तर के समान सटीक उत्तर है। 6 साल पहले दिया गया ...
केर्विन स्नेजर्स

@KerwinSneijders मैंने उस समय 2 साल पहले उत्तर जोड़ा था, स्वीकृत उत्तर ने इस बात की जानकारी नहीं दी कि यू क्या करता है
संजीव गुगलानी

जहाँ तक मैं स्वीकार किए गए उत्तर को बता सकता हूं, उसमें उस दिन से जानकारी शामिल थी जिस दिन यह पोस्ट किया गया था। (मार १४ ’१२)। और अगर ऐसा नहीं भी होता है, तो भी यह जानकारी स्वीकार किए गए उत्तरों के नीचे एक टिप्पणी में बेहतर पोस्ट की जाती है क्योंकि यह एक उत्तर नहीं है, बल्कि अतिरिक्त जानकारी है
केर्विन स्नेज

0

मैंने यहां सभी जवाबों की कोशिश की लेकिन कुछ भी काम नहीं आया। पहले मेरे कंप्यूटर को फिर से चालू किया mvn clean install -U। इससे मेरी समस्या हल हो गई।


0

मावेन क्या करता है, यह आपके सभी प्रोजेक्ट की निर्भरता को आपके स्थानीय रेपो (.m2 फ़ोल्डर) में डाउनलोड करता है। इंटरनेट के कारण आपके स्थानीय रेपो के साथ समस्याएँ उत्पन्न हो रही हैं, इसलिए आपको समस्या का सामना करना पड़ रहा है। मुझे यकीन नहीं है कि यह निश्चित रूप से आपकी मदद करेगा या नहीं, लेकिन आप .2 फ़ोल्डर के अंदर रिपॉजिटरी फ़ोल्डर के भीतर सभी फ़ाइलों को हटाने की कोशिश कर सकते हैं। चूंकि स्थानीय रेपो में कुछ भी नहीं होगा, इसलिए मावेन को निर्भरता को फिर से डाउनलोड करने के लिए मजबूर किया जाएगा, इस प्रकार एक अद्यतन को मजबूर करना होगा। आम तौर पर, .m2 फ़ोल्डर c: उपयोगकर्ताओं पर स्थित है: [उपयोगकर्ता नाम]: m2


-1

मुझे एक अलग कारण से यह समस्या थी। मैं maven रिपॉजिटरी https://mvnrepository.com पर स्प्रिंग कोर के नवीनतम संस्करण की तलाश में गया, जो उस समय 5.0.0.M3 था / रिपॉजिटरी ने मुझे मेरे pom.xml के लिए यह प्रविष्टि दिखाई:

<!-- https://mvnrepository.com/artifact/org.springframework/spring-core -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-core</artifactId>
    <version>5.0.0.M3</version>
</dependency>

भोले मूर्ख जो मैं हूं, मैंने मान लिया कि टिप्पणी मुझे बता रही थी कि जार डिफ़ॉल्ट भंडार में स्थित है।

हालाँकि, बहुत सिर-पीटने के बाद, मैंने xml के ठीक नीचे एक नोट देखा, जिसमें लिखा था कि "नोट: यह कलाकृतियाँ यह अल्फ्रेस्को पब्लिक रिपॉजिटरी ( https://artifacts.alfresco.com/nexus/content/repositories/public/) पर स्थित है। ) "

तो XML में टिप्पणी पूरी तरह से भ्रामक है। जार एक और संग्रह में स्थित है, यही वजह थी कि मावेन इसे नहीं खोज सका!


-3

हम नीचे दिए गए आदेश के साथ रिलीज़ और स्नैपशॉट रिपॉजिटरी का नवीनतम अपडेट प्राप्त करने के लिए बाध्य कर सकते हैं:

mvn --update-snapshots clean install

12
यह स्वीकृत उत्तर के समान सटीक उत्तर है। -U संक्षिप्त रूप है --update- स्नैपशॉट्स।
फ्रोजन मटर की रोडी

-3

मेरे पास एक ही त्रुटि थी और दौड़ना mvn install -Uऔर फिर दौड़ना mvn installमेरे लिए काम कर गया।


10
कृपया "मेरे लिए काम किए गए अन्य सभी उत्तरों में उल्लिखित बात" के उत्तर भी न दें
क्राइजर

-4

मैं हाल ही में इसमें भाग गया और निम्नलिखित सभी समस्याओं को हल किया

mvn -fae install

5
-fae,--fail-at-end Only fail the build afterwards; allow all non-impacted builds to continueयह गैर-अद्यतन बाहरी निर्भरताओं को ठीक करने का एक अजीब तरीका लगता है ..
डोनाटेलो

-5

mvn clean install -Uकाम नहीं करता है। हालांकि mvn -U cleanइसके बाद mvn clean installकरता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.