के दौरान एक आंतरिक त्रुटि हुई: "अपडेटिंग मैवेन प्रोजेक्ट"। java.lang.NullPointerException


91

मैं एक जावा ईई वेब परियोजना विकसित कर रहा हूं। जब मैं एक निर्भरता जोड़ने का प्रयास करता हूं, तो यह त्रुटि संदेश प्रकट होता है। मैं ग्रहण केपलर का उपयोग करता हूं।

के दौरान एक आंतरिक त्रुटि हुई: "अपडेटिंग मेवेन प्रोजेक्ट"। java.lang.NullPointerException

क्या तुम मेरी मदद कर सकते हो? धन्यवाद।

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


1
क्या आप ग्रहण का उपयोग कर रहे हैं? क्या आप पूरे स्टैक ट्रेस को पोस्ट कर सकते हैं? आप इसे "त्रुटि लॉग" दृश्य में पा सकते हैं।
पाब्लो लास्कानो

कार्यक्षेत्र फ़ोल्डर में अपनी .metadata को साफ़ करें, इसे हल कर सकते हैं। लेकिन आप अपने कार्यक्षेत्र के विन्यास खो देते हैं। = (
फर्नांडो

जवाबों:


152

मैंने प्रोजेक्ट में .settingsफ़ोल्डर और .projectफ़ाइल को हटाकर और फिर प्रोजेक्ट को फिर से आयात करके मेरा हल किया ।


4
मैंने बहुत सी चीजों की कोशिश की, और यह ssingsings फ़ोल्डर था जिसने इसे मेरे लिए किया।
सिमोन

इससे मदद मिली! लेकिन, क्योंकि मैं एक ही कार्यक्षेत्र में किसी परियोजना के लिए कुछ पोम निर्भरता को हल करने के लिए वर्कस्पेस रिज़ॉल्यूशन का उपयोग कर रहा था, मुझे वर्कस्पेस रिज़ॉल्यूशन को अक्षम करना था, फिर मावेन नेचर को अक्षम करें, फिर मावेन को प्रोजेक्ट पर फिर से सक्षम करें।
mcolley73

1
जेप, जो मेरे लिए काम करता था, ऐसा प्रतीत होता है कि यह एक Google ऐप इंजन संस्करण की भी बात कर रहा था जो मेरे पास अब नहीं था (यह अपडेट किया गया था)
डाइटर हुबाउ

इसके अलावा, पुनः आरंभ करने से पहले ग्रहण को फिर से शुरू करना पड़ा।
rakmoh

मैंने इसे हल कर दिया बस सभी .settings फ़ाइलों को हटाना, ग्रहण से पहले बंद करना। फिर मैंने एक मैवेन अपडेट निष्पादित किया।
isma.imc

25

मेरे लिए उपयोगकर्ता मनेश गोडबोले द्वारा कोडरंच पर मिले जवाब पर काम किया :

  1. ग्रहण को बंद करें।
  2. अपने "कार्यक्षेत्र" फ़ोल्डर में नेविगेट करें
  3. छिपी हुई फ़ाइलों को देखने के लिए अपने ओएस पर सेटिंग सुनिश्चित करें
  4. .Metadata निर्देशिका को पहचानें और हटाएं
  5. ग्रहण को पुनः आरंभ करें
  6. आयात परियोजना

1
यहाँ केवल यही एक उत्तर था जिसने मेरे लिए काम किया। स्टार्टअप पर .settings और .project एंट्रीज़ को फिर से बनाया जा रहा था, जब तक कि मैं मेटाडेटा फ़ोल्डर को हटा नहीं देता। +1 & thx!
मार्क डब्ल्यू

@ मर्कोव मुझे खुशी है कि मदद मिली :-)
ईल ली

मेरे लिए यह काम करता है, लेकिन मुझे अपने सभी कार्यक्षेत्र को फिर से कॉन्फ़िगर करने की आवश्यकता है। =
फर्नांडो

यह ग्रहण पर मेरी सभी सेटिंग्स हटा देता है। लेआउट, दृष्टिकोण और रंग सब खत्म हो गया है।
उमुट

6

मुझे अपने एक मॉड्यूल में एक ही समस्या है।

कंसोल / cmd में "mvan ग्रहण: ग्रहण" चलाने से मेरे लिए समस्या हल हो गई।


3

इस समस्या के हमारे उदाहरण में, हमारे पास pom.xmlफाइलें थीं जहां एम 2-विशिष्ट जीवन चक्र मानचित्रण विन्यास था

<pluginManagement>
    <plugins>
        <plugin>
            <groupId>org.eclipse.m2e</groupId>
            <artifactId>lifecycle-mapping</artifactId>
            <version>1.0.0</version>
            <configuration>
                <lifecycleMappingMetadata>
...

नहीं था <version>1.0.0</version>हिस्सा । जब Maven -> Update Project ... करते हैं, तो यह स्टैक ट्रेस के बिना रिपोर्ट किए गए NullPointerException का कारण बनता है। ताजा आयात का उपयोग करते समय ... -> मौजूदा मावेन प्रोजेक्ट्स, एक ही अपवाद हुआ, लेकिन एक स्टैक ट्रेस के साथ जिसने मुझे ऊपर खोजने के लिए प्रेरित किया।

(यह एक्लिप्स लूना सर्विस रिलीज़ 2 (4.4.2) में m2e 1.6.1.20150625-2338 के साथ है।)


1
यह मेरे लिए मामला था। मुझे लगता है कि वर्णित समस्या के कई अलग-अलग कारण हैं।
अलेक्सांद्र एरोखिन

2

मामले में यह हटाने के अलावा, किसी को भी मदद करता है .settings और .project, मैं को नष्ट करने के लिए किया था .classpathऔर .factorypathसफलतापूर्वक ग्रहण में परियोजना आयात करने के लिए सक्षम होने से पहले।


1

org.eclipse.m2e.core.prefs फ़ाइल .settings फ़ोल्डर में है। यदि आप की समस्या का सामना करते हैं

An internal error occurred during: "Updating Maven Project". java.lang.NullPointerException

प्रोजेक्ट से हटाएं फिर .settings फ़ोल्डर और .project फ़ाइल को प्रोजेक्ट में हटाकर -> फिर प्रोजेक्ट को पुन: आयात करें।


यह उत्तर पहले से मौजूद है और इसमें सबसे अधिक अपरोक्ष हैं, इसलिए मुझे डुप्लिकेट पोस्ट करने में कोई मतलब नहीं है।
ईल ली

क्या किसी ने "org.eclipse.m2e.core.prefs" के बारे में उल्लेख किया है? मेरे कहने का मतलब है कि समस्या के पीछे क्या कारण है।
ज्योति प्रकाश

शायद मुख्य उत्तर पर एक टिप्पणी क्यों चर्चा करने के लिए सबसे अच्छी जगह है
जे। एलन


1

स्थानीय मावेन भंडार को हटाने से मुझे मदद मिली


1

ग्रहण में एक त्रुटि लॉग है। वहां आपको पूरा स्टैक ट्रेस दिखाई देगा। मेरे मामले में यह java.util.zip के साथ एक खराब जार फाइल के कारण लगता है कि एक उचित अपवाद नहीं फेंक रहा है, बस एक NullPointerException।


मेरे मामले में, इस परिदृश्य को सेलेनियम, उदाहरण के लिए, repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/… से javadoc JARs के एक जोड़े द्वारा ट्रिगर किया गया था । पर ग्रहण m2e के लिए स्रोत में git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/... , आप देख सकते हैं कि getJavaDocPathInArchive विधि एक उम्मीद नहीं है NullPointerException from en.nextElement ()।
जेरेमी के

जाहिरा तौर पर एक ज़िप फ़ाइल को एनुमरेट करने से "NullPointerException" को जावा 9 ( Bugs.openjdk.java.net/browse/JDK-8048990 ) में संबोधित किया गया है ।
जेरेमी के

1

मैं उपयोग कर रहा हूँ:

वेब डेवलपर्स के लिए ग्रहण जावा ईई आईडीई।

संस्करण: नियोन .3 रिलीज़ (4.6.3) बिल्ड आईडी: 20170314-1500

मेरे लिए फिक्स / ट्रिक स्थानीय निर्भरता को दूर करने और मेरी परियोजना के पुनर्निर्माण में मेरी स्थानीय रिपॉजिटरी को ~ / .m2 / रिपॉजिटरी में हटा रहा था और जिसमें नई निर्भरताएं कम हो गई हैं।


0

मुझे भी यही समस्या थी। यहां कोई भी समाधान काम नहीं आया। मुझे पूर्ण रूप से ग्रहण को पुनः स्थापित करना पड़ा और एक नया कार्यक्षेत्र बनाना पड़ा। फिर यह काम किया!


0

उपरोक्त तरीकों में से कोई भी मेरे लिए काम नहीं किया। यह आपके ग्रहण कार्यक्षेत्र में परिपत्र निर्भरता की उपस्थिति के कारण भी उत्पन्न हो सकता है। इसलिए यदि आपके कार्यक्षेत्र में किसी भी अन्य प्रोजेक्ट में कोई अन्य त्रुटियाँ मौजूद हैं, तो उन्हें ठीक करने का प्रयास करें और फिर यह समस्या दूर हो जाएगी। इस तरह मैंने त्रुटि को समाप्त किया।


0

मेरे पास कई परियोजनाओं और कई कार्यक्षेत्रों में एक ही मुद्दा था, मेरे द्वारा ऑनलाइन किए गए समाधानों में से कोई भी मेरे लिए काम नहीं करता था। मैं एसटीएस का उपयोग कर रहा हूं और केवल एक चीज जो काम करती है वह थी मेरी एसटीएस निर्देशिका में जाना और एसटीएस.इन फ़ाइल के शीर्ष पर "-क्लाइन" जोड़ना। फिर आप अपने कार्यक्षेत्र को शुरू कर सकते हैं और त्रुटियों के बिना मावेन को साफ कर सकते हैं। (आप ini फ़ाइल से -clean टैग को भी हटा सकते हैं, ताकि आप इसे शुरू करने से पहले इसे साफ न करें)

आशा है कि यह किसी की मदद करता है।


0

मेरे मामले में मूल मुद्दा .settings फ़ोल्डर में एक फ़ाइल संघर्ष था। तो, .settings फ़ोल्डर को हटाने से मावेन त्रुटि का समाधान हो जाता, लेकिन मैं अपनी कुछ स्थानीय कॉन्फ़िगरेशन फ़ाइलों को रखना चाहता था। मैंने संघर्ष को हल किया, फिर एक मैवेन अपडेट को फिर से कोशिश की और यह काम किया।


0

मैं एक ही मुद्दा था ... अंत में समाधान!

यहाँ ग्रहण लॉग:

java.lang.NullPointerException
    at com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.getGaeRuntime(GaeRuntimeManager.java:85)
    at com.google.appengine.eclipse.wtp.maven.GaeRuntimeManager.ensureGaeRuntimeWithSdk(GaeRuntimeManager.java:55)
    at com.google.appengine.eclipse.wtp.maven.GaeFacetManager.addGaeFacet(GaeFacetManager.java:59)
    at com.google.appengine.eclipse.wtp.maven.GaeProjectConfigurator.configure(GaeProjectConfigurator.java:46)

... यह "appengine maven wtp प्लगइन" से आता है जो GAE रनटाइम के प्रकार को प्राप्त करने की कोशिश करता है, लेकिन यहाँ शून्य लगता है ... (getRuntimeType () -> NPE):

वर्ग देखें com.google.appengine.eclipse.wtp.maven / GaeRuntimeManager.java

  private static IRuntime getGaeRuntime(String sdkVersion) {
    IRuntime[] runtimes = ServerCore.getRuntimes();
    for (IRuntime runtime : runtimes) {
      if (runtime != null &&  **runtime.getRuntimeType()**.equals(GAE_RUNTIME_TYPE)) {

इसलिए, यदि आप ग्रहण में जांच करते हैं, तो Google App Engine दिखाई देता है, लेकिन जब आप इसे चुनते हैं तो आप देखेंगे कि कोई SDK संबद्ध नहीं है ... वरीयता / सर्वर / रनटाइम वातावरण

समाधान: स्क्रीनशॉट पर लाल रंग में ;-)


0

मैंने इसी लक्षण का सामना किया और ऊपर दिए गए समाधानों में से कोई भी मददगार नहीं था। मुझे अंत में फिर से ग्रहण करने के लिए कान परियोजना को आयात करके समस्या का एक स्टैक ट्रेस मिला, और इसे नीचे करने में सक्षम किया गया। org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement जो विंडोज़ की अस्थायी निर्देशिका में एक निर्देशिका को हटाने की कोशिश कर रहा था जिसे " .mavenDeploymentDescriptorManagement ", जिसने java.io.File.exists () विधि से एक तर्कहीन NullPointerException का कारण बना, विशेष रूप से क्योंकि कोड ने पहले से ही उसी चर के साथ पिछले विधि में सफलतापूर्वक काम किया था, फिर file.isFile () के बिना संकट।

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


0

समस्या का सिर्फ एक और संभावित स्रोत!

मुझे पता चला कि मेरे मामले में यह निम्नलिखित resourceब्लॉक था जिसके कारण यह हुआ:

<project>
    <build>
        <resources>
            <resource>
                <directory>${basedir}/../some-folder</directory>
                <targetPath>outputFolder</targetPath>
            </resource>
        <resources>
    </build>
</project>

इसमें प्रोजेक्ट फ़ोल्डर से एक फ़ोल्डर शामिल था ( ग्रहण परियोजना संस्करण प्रोजेक्ट फ़ोल्डर का एक सबफ़ोल्डर है )।

मेरे मामले में, मैं ब्लॉक को हटाकर इसकी जगह बिल्ड हेल्पर मावेन प्लगइन को कॉल करके त्रुटि को हटा सकता हूं :

<build>
    <plugins>
        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <version>1.9.1</version>
            <executions>
                <execution>
                    <id>my-own-very-cool-id-for-this-step</id>
                    <phase>generate-resources</phase>
                    <goals>
                        <goal>add-resource</goal>
                    </goals>
                    <configuration>
                        <resources>
                            <resource>
                                <directory>${basedir}/../some-folder</directory>
                                <targetPath>outputFolder</targetPath>
                            </resource>
                        </resources>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

0

मुझे ग्रहण को पुनर्स्थापित करना था, .m2 फ़ोल्डर को हटाना और जार को फिर से बनाना था।


0

मेरे मामले में, समस्या एक तरह से व्युत्पन्न निर्भरताओं का टकराव थी जो कि अन्य निर्भरताओं द्वारा उपयोग की गई थी, और उनमें से कुछ व्युत्पन्न निर्भरता संस्करण उपलब्ध नहीं थे, हो सकता है कि कुछ इसलिए तैनात थे क्योंकि मैं ऐसा करना भूल गया क्योंकि कार्यक्षेत्र संकल्प के साथ सब कुछ काम किया, लेकिन जब चलती है अन्य पर्यावरण के लिए सभी अचानक टूट गया। और मैं भी संस्करण रेंज के साथ काम कर रहा था

मावेन मुझे यह त्रुटि दे रहा था:

प्रोजेक्ट के लिए निर्भरताएँ हल नहीं कर सका MyProject: MyProject: jar: 1.0.0: निर्भरता-A: 1.0.1 के बीच संस्करण विरोध को हल नहीं कर सका: 1.0.1 -> निर्भरता-B: 1.1.0 -> निर्भरता-C: 1.0.0 , निर्भरता- X: 1.0.1 -> निर्भरता-वाई: 1.1.0 -> निर्भरता-सी: 1.0.0 , निर्भरता- I: 1.0.1 -> निर्भरता-जे: 1.1.0 -> निर्भरता-सी: 1.0.0

मैंने ऊपर सभी की कोशिश की और कुछ भी काम नहीं किया, इसलिए ...

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

केवल मैं आपको सुझाव देता हूं कि यदि आप अपने स्वयं के आश्रितों के साथ काम कर रहे हैं, तो किसी अन्य तीसरे पक्ष के भविष्य के संस्करण में, आप कुछ संकलन या रनटाइम त्रुटियाँ पा सकते हैं


0

उपरोक्त समाधानों ने मेरे लिए काम नहीं किया क्योंकि खुले JDK 13 संस्करण के साथ मुद्दा https://github.com/spotify/dockerfile-maven/issues/163 इसलिए मैंने JDK8 को खोलने के लिए अपमानित किया और यह मेरे लिए काम करता है

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