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.