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

achref05
źródło
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.

user2985381
źródło
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
Eel Lee
źródło
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.

user1854278
źródło
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).)

MarnixKlooster ReinstateMonica
źródło
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.

ccellist
źródło
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.

Jyoti Prakash
źródło
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.

Pranesh
źródło
1

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

Tony
źródło
1

Pomogło mi usunięcie lokalnego repozytorium Mavena

huttraeger
źródło
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.

user1050755
źródło
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.

Jones Michael
źródło
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!

zegarmistrz
źródł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.

Justin Doll
źródło
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.

Sztylet Gilberta Arenasa
źródł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 ;-)

fedevo
źródło
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.

Gość
źródło
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>
Bowi
źródło
0

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

Amit
źródło
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

Aramis Rodríguez Blanco
źródło