Wystąpił błąd wewnętrzny podczas: „Aktualizowanie projektu Maven”. java.lang.NullPointerException


91

Tworzę projekt sieciowy Java EE. Kiedy próbuję dodać zależność, pojawia się ten komunikat o błędzie. Używam Eclipse Kepler.

Wystąpił błąd wewnętrzny podczas: „Aktualizowanie projektu Maven”. java.lang.NullPointerException

Czy mógłbyś mi pomóc? Dziękuję Ci.

wprowadź opis obrazu tutaj


1
Czy używasz zaćmienia? czy możesz opublikować cały ślad stosu? Możesz go znaleźć w widoku „Dziennik błędów”.
Pablo Lascano

wyczyść swoje metadane w folderze obszaru roboczego, może rozwiązać ten problem. Ale tracisz konfiguracje swojego obszaru roboczego. = (
Fernando Gomes

Odpowiedzi:


155

Swoje rozwiązałem, usuwając .settingsfolder i .projectplik w projekcie, a następnie ponownie importując projekt.


5
Próbowałem wielu rzeczy i to właśnie folder .settings zrobił to za mnie.
simon

To pomogło! Ale ponieważ użyłem rozwiązania Workspace Resolution do rozwiązania niektórych zależności pom w projekcie w tym samym obszarze roboczym, musiałem wyłączyć rozwiązanie obszaru roboczego, a następnie wyłączyć Maven Nature, a następnie ponownie włączyć Mavena w projekcie.
mcolley73

1
Jep, to działało dla mnie, wygląda na to, że odnosiło się to również do wersji Google App Engine, której już nie miałem (została zaktualizowana)
Dieter Hubau

Musiałem także ponownie uruchomić zaćmienie przed ponownym importem.
rakmoh

Rozwiązałem to po prostu usuwając wszystkie pliki .settings, zamykając przed Eclipse. Następnie wykonałem aktualizację mavena.
isma.imc

25

Dla mnie zadziałała odpowiedź, którą znalazłem na CodeRanch , przez użytkownika Maneesh Godbole :

  1. Bliskie zaćmienie.
  2. Przejdź do folderu „obszaru roboczego”
  3. Upewnij się, że w systemie operacyjnym jest włączone ustawienie wyświetlania ukrytych plików
  4. Zidentyfikuj i usuń katalog .metadata
  5. Uruchom ponownie zaćmienie
  6. Importuj projekt

1
To była jedyna odpowiedź, która mi pomogła. Elementy .settings i .project były odtwarzane podczas uruchamiania, powodując ten sam problem, dopóki nie usunąłem folderu metadanych. +1 i dzięki!
Mark W

@MarkW Cieszę się, że pomogło :-)
Eel Lee

U mnie to działa, ale musiałem ponownie skonfigurować cały obszar roboczy. = (
Fernando Gomes,

usuwa wszystkie moje ustawienia zaćmienia. Układ, perspektywy i kolory zniknęły.
Umut

6

Miałem ten sam problem w jednym z moich modułów.

Uruchomienie "mvn eclipse: eclipse" w konsoli / cmd rozwiązało problem za mnie.


3

W naszym przypadku tego problemu mieliśmy pom.xmlpliki zawierające konfigurację mapowania cyklu życia specyficzną dla m2e

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

nie miał <version>1.0.0</version>części. Podczas wykonywania Maven -> Update Project ... powoduje to zgłoszony wyjątek NullPointerException bez śladu stosu. Podczas używania nowego Import ... -> Existing Maven Projects wystąpił ten sam wyjątek, ale ze śladem stosu, który doprowadził mnie do znalezienia powyższego.

(Dotyczy to m2e 1.6.1.20150625-2338 w Eclipse Luna Service Release 2 (4.4.2).)


1
Tak było w przypadku mnie. Myślę, że opisany problem ma wiele różnych przyczyn.
Aleksandr Erokhin

2

Na wypadek, gdyby pomogło to każdemu, oprócz usuwania .settingsi .project, musiałem usunąć .classpathi .factorypathprzed pomyślnym zaimportowaniem projektu do Eclipse.


1

Plik org.eclipse.m2e.core.prefs znajduje się w folderze .settings . Jeśli napotkasz problem

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

Usuń projekt z eclipse, a następnie usuwając folder .settings i plik .project w projekcie -> następnie ponownie zaimportuj projekt.


Ta odpowiedź już istnieje i ma najwięcej głosów pozytywnych, więc nie widzę sensu publikowania duplikatu.
Eel Lee

Czy ktoś wspomniał o „org.eclipse.m2e.core.prefs”? Chcę powiedzieć, jaka jest przyczyna problemu.
Jyoti Prakash

Być może komentarz do głównej odpowiedzi jest najlepszym miejscem do omówienia dlaczego
J. Allen

1

Żadna z powyższych metod nie zadziałała. Może to również wynikać z obecności zależności kołowej w obszarze roboczym zaćmienia. Więc jeśli są jakieś inne błędy obecne w którymkolwiek z innych projektów w twoim obszarze roboczym, spróbuj je naprawić, a wtedy ten problem zniknie. W ten sposób wyeliminowałem błąd.


1

Pomogło mi to: Project menu -> Clean... -> clean all projects



1

Eclipse ma dziennik błędów. Tam zobaczysz pełny ślad stosu. W moim przypadku wydaje się, że jest to spowodowane złym plikiem jar w połączeniu z bibliotekami java.util.zip, które nie generują odpowiedniego wyjątku, tylko wyjątek NullPointerException.


W moim przypadku ten scenariusz został uruchomiony przez kilka javadoc JAR z Selenium, np . Repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/… . W źródle Eclipse m2e pod adresem git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/ ... widać, że metoda getJavaDocPathInArchive nie oczekuje NullPointerException z en.nextElement ().
Jeremy K

Najwyraźniej „NullPointerException” z wyliczania pliku ZIP jest adresowany w Javie 9 ( bugs.openjdk.java.net/browse/JDK-8048990 ).
Jeremy K

1

Używam:

Eclipse Java EE IDE dla programistów WWW.

Wersja: Neon.3 Release (4.6.3) Identyfikator kompilacji: 20170314-1500

Rozwiązaniem / sztuczką dla mnie było usunięcie mojego lokalnego repozytorium w ~ / .m2 / repozytorium w celu usunięcia lokalnych zależności i odbudowy mojego projektu, w którym nowe zależności są ściągane.


0

Miałem ten sam problem. Żadne z rozwiązań tutaj nie zadziałało. Musiałem całkowicie przeinstalować Eclipse i stworzyć nowy obszar roboczy. Wtedy zadziałało!


0

Miałem ten sam problem w wielu projektach i wielu obszarach roboczych, żadne z rozwiązań, które znalazłem online, nie działało dla mnie. Używam STS i jedyną rzeczą, która działała, było przejście do mojego katalogu STS i dodanie „-clean” na początku pliku STS.ini. Następnie możesz uruchomić obszar roboczy i uruchomić maven clean bez błędów. (możesz również usunąć tag -clean z pliku ini, aby nie był czyszczony za każdym razem, gdy go uruchomisz)

Mam nadzieję, że to komuś pomoże.


0

Głównym problemem w moim przypadku był konflikt plików w folderze .settings. Tak więc usunięcie folderu .settings rozwiązałoby błąd Mavena, ale chciałem zachować niektóre z moich lokalnych plików konfiguracyjnych. Rozwiązałem konflikt, a następnie ponownie wypróbowałem aktualizację Maven i zadziałało.


0

Miałem ten sam problem ... rozwiązanie na koniec!

tutaj dziennik zaćmienia:

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)

... pochodzi z "wtyczki appengine maven wtp", która próbuje pobrać typ środowiska uruchomieniowego GAE, ale wydaje się, że tutaj jest zerowa (... getRuntimeType () -> NPE):

zobacz klasę 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)) {

Jeśli więc zaznaczysz zaćmienie, Google App Engine będzie widoczny, ale po jego wybraniu zobaczysz, że żaden pakiet SDK nie jest powiązany ... preferencje / serwer / środowiska wykonawcze

ROZWIĄZANIE: na czerwono na screenie ;-)


0

Napotkałem ten sam symptom i żadne z powyższych rozwiązań nie było pomocne. W końcu otrzymałem ślad stosu problemu, ponownie importując projekt ucha do zaćmienia, i udało mi się go prześledzić do org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement, który próbował usunąć katalog w tymczasowym katalogu systemu Windows o nazwie „ .mavenDeploymentDescriptorManagement ”, co spowodowało irracjonalny wyjątek NullPointerException z metody java.io.File.exists (), szczególnie dlatego, że kod już pomyślnie wykonał to samo w poprzedniej metodzie z tą samą zmienną, a następnie wywołał file.isFile () bez problem.

Sprawdzenie tego w systemie plików ujawniło, że plik był dostępny tylko z uprawnieniami administratora. Najwyraźniej przez pomyłkę uruchomiłem eclipse z konsoli administratora. W końcu po prostu pokazałem ukryte pliki w eksploratorze Windows i ręcznie usunąłem plik tymczasowy, co rozwiązało problem.


0

Kolejne możliwe źródło problemu!

Dowiedziałem się, że w moim przypadku resourcespowodował to następujący blok:

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

Zawierał folder z folderu projektu ( projekt eclipse jest podfolderem wersjonowanego folderu projektu ).

W moim przypadku mogłem usunąć błąd, usuwając blok i zastępując go wywołaniem wtyczki Build helper Maven:

<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

Musiałem przeinstalować eclipse, usunąć folder .m2 i odbudować słoiki.


0

W moim przypadku problemem był konflikt zależności pochodnych, które były używane przez inne zależności, a niektóre z tych wersji zależności pochodnych nie były dostępne, być może dlatego, że niektóre wdrożenia, o których zapomniałem zrobić, ponieważ z rozwiązaniem obszaru roboczego wszystko działało, ale podczas przenoszenia do innego środowiska wszystko nagle się zepsuło. Pracowałem też z zakresami wersji

maven dał mi ten błąd:

Nie można rozwiązać zależności dla projektu MyProject: MyProject: jar: 1.0.0: Nie można rozwiązać konfliktu wersji między Dependency-A: 1.0.1 -> Dependency-B: 1.1.0 -> Dependency-C: 1.0.0 , Dependency- X: 1.0.1 -> Zależność-Y: 1.1.0 -> Zależność-C: 1.0.0 , Zależność-I: 1.0.1 -> Zależność-J: 1.1.0 -> Zależność-C: 1.0.0

Próbowałem wszystkiego powyżej i nic nie działało, więc ...

ROZWIĄZANIE : Użyj NAJNOWSZEJ wersji jako wersji we wszystkich zależnościach, aby maven nie musiał rozwiązywać wszystkich zależności w zakresach, z czego należy korzystać ostrożnie, ponieważ jeśli przegapisz jedną z zależności, kompilacja się nie powiedzie

Tylko sugeruję, abyś używał NAJNOWSZEJ, jeśli pracujesz z własnymi zależnościami, w przeciwnym razie w przyszłej wersji innej firmy możesz znaleźć błędy kompilacji lub czasu wykonania


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.