Ein interner Fehler trat auf während: "Aktualisieren des Maven-Projekts". java.lang.NullPointerException


90

Ich entwickle ein Java EE-Webprojekt. Wenn ich versuche, eine Abhängigkeit hinzuzufügen, wird diese Fehlermeldung angezeigt. Ich benutze Eclipse Kepler.

Ein interner Fehler ist aufgetreten während: "Aktualisieren des Maven-Projekts". java.lang.NullPointerException

Kannst du mir helfen? Danke dir.

Geben Sie hier die Bildbeschreibung ein


1
Verwenden Sie Eclipse? Kannst du den gesamten Stack-Trace posten? Sie finden es in der Ansicht "Fehlerprotokoll".
Pablo Lascano

Löschen Sie Ihre .metadata im Arbeitsbereich Ordner, kann dies lösen. Sie verlieren jedoch Konfigurationen Ihres Arbeitsbereichs. = (
Fernando Gomes

Antworten:


151

Ich habe meine Probleme gelöst, indem ich den .settingsOrdner und die .projectDatei im Projekt gelöscht und das Projekt erneut importiert habe.


4
Ich habe viele Dinge ausprobiert, und es war der Ordner .settings, der das für mich erledigt hat.
Simon

Das hat geholfen! Da ich jedoch die Arbeitsbereichsauflösung verwendet habe, um einige POM-Abhängigkeiten zu einem Projekt im selben Arbeitsbereich aufzulösen, musste ich die Arbeitsbereichsauflösung deaktivieren, dann die Maven-Natur deaktivieren und dann Maven für das Projekt erneut aktivieren.
Mcolley73

1
Jep, das hat bei mir funktioniert, anscheinend bezog es sich auch auf eine Google App Engine-Version, die ich nicht mehr hatte (sie wurde aktualisiert)
Dieter Hubau

Außerdem musste Eclipse vor dem erneuten Import neu gestartet werden.
Rakmoh

Ich habe es gelöst, indem ich alle .settings-Dateien gelöscht und vor Eclipse geschlossen habe. Dann habe ich ein Maven-Update durchgeführt.
isma.imc

25

Für mich funktionierte die Antwort, die ich auf CodeRanch von Benutzer Maneesh Godbole gefunden hatte :

  1. Sonnenfinsternis schließen.
  2. Navigieren Sie zu Ihrem Ordner "Arbeitsbereich"
  3. Stellen Sie sicher, dass die Einstellung auf Ihrem Betriebssystem zum Anzeigen versteckter Dateien aktiviert ist
  4. Identifizieren und löschen Sie das Metadatenverzeichnis
  5. Starten Sie Eclipse neu
  6. Projekt importieren

1
Dies war die einzige Antwort hier, die für mich funktioniert hat. Die Entitäten .settings und .project wurden beim Start neu erstellt, was das gleiche Problem verursachte, bis ich den Metadatenordner löschte. +1 & thx!
Mark W

@ MarkW Ich bin froh, dass das geholfen hat :-)
Eel Lee

Für mich funktioniert es, aber ich musste meinen gesamten Arbeitsbereich neu konfigurieren. = (
Fernando Gomes

Es löscht alle meine Einstellungen auf Eclipse. Layout, Perspektiven und Farben sind weg.
Umut

6

Ich hatte das gleiche Problem in einem meiner Module.

Das Ausführen von "mvn eclipse: eclipse" in der Konsole / cmd hat das Problem für mich gelöst.


3

In unserem Fall dieses Problems hatten wir pom.xmlDateien, in denen die m2e-spezifische Konfiguration für die Lebenszykluszuordnung enthalten war

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

hatte das <version>1.0.0</version>Teil nicht. Wenn Sie ein Maven -> Projekt aktualisieren ... ausführen, wird die gemeldete NullPointerException ohne Stack-Trace ausgeführt. Bei Verwendung eines neuen Imports ... -> Vorhandene Maven-Projekte trat dieselbe Ausnahme auf, jedoch mit einer Stapelverfolgung, die mich dazu veranlasste, die oben genannten zu finden.

(Dies ist mit m2e 1.6.1.20150625-2338 in Eclipse Luna Service Release 2 (4.4.2).)


1
Dies war bei mir der Fall. Ich denke, das beschriebene Problem hat viele verschiedene Ursachen.
Aleksandr Erokhin

2

Im Fall hilft es jemand, zusätzlich zu löschen .settingsund .projectmusste ich löschen .classpathund .factorypathvor in der Lage , das Projekt erfolgreich in Eclipse zu importieren.


1

Die Datei org.eclipse.m2e.core.prefs befindet sich im Ordner .settings . Wenn Sie vor dem Problem stehen

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

Das Projekt von Eclipse löscht dann durch die Löschen .settings Ordner & .project Datei im Projekt -> dann wieder importiert das Projekt.


Diese Antwort existiert bereits und hat die meisten positiven Stimmen, daher sehe ich keinen Sinn darin, ein Duplikat zu veröffentlichen.
Aal Lee

Hat jemand von "org.eclipse.m2e.core.prefs" gesprochen? Ich möchte sagen, was der Grund für das Problem ist.
Jyoti Prakash

Vielleicht ist ein Kommentar zur Hauptantwort der beste Ort, um das Warum zu diskutieren
J. Allen

1

Das hat mir geholfen: Project menu -> Clean... -> clean all projects



1

Eclipse hat ein Fehlerprotokoll. Dort sehen Sie die komplette Stack-Trace. In meinem Fall scheint dies an einer fehlerhaften JAR-Datei in Kombination mit den Bibliotheken java.util.zip zu liegen, die keine ordnungsgemäße Ausnahme auslöst, sondern nur eine NullPointerException.


In meinem Fall wurde dieses Szenario durch einige der Javadoc-JARs von Selenium ausgelöst, z . B. repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/… . In der Quelle für Eclipse m2e unter git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/… können Sie sehen, dass die Methode getJavaDocPathInArchive keine erwartet NullPointerException von en.nextElement ().
Jeremy K

Anscheinend wird die "NullPointerException" beim Auflisten einer ZIP-Datei in Java 9 ( bugs.openjdk.java.net/browse/JDK-8048990 ) behoben .
Jeremy K

1

Ich benutze:

Eclipse Java EE IDE für Webentwickler.

Version: Neon.3 Release (4.6.3) Build-ID: 20170314-1500

Die Lösung / der Trick für mich bestand darin, mein lokales Repository in ~ / .m2 / repository zu löschen, um lokale Abhängigkeiten zu entfernen und mein Projekt neu zu erstellen, in dem neue Abhängigkeiten abgerufen werden.


0

Ich hatte das gleiche Problem. Keine der Lösungen hier hat funktioniert. Ich musste Eclipse komplett neu installieren und einen neuen Arbeitsbereich erstellen. Dann hat es geklappt!


0

Keine der oben genannten Methoden hat bei mir funktioniert. Dies kann auch auf das Vorhandensein einer zirkulären Abhängigkeit in Ihrem Eclipse-Arbeitsbereich zurückzuführen sein. Wenn also in einem der anderen Projekte in Ihrem Arbeitsbereich andere Fehler vorhanden sind, versuchen Sie, diese zu beheben. Dieses Problem ist dann behoben. So habe ich den Fehler beseitigt.


0

Ich hatte das gleiche Problem in mehreren Projekten und Arbeitsbereichen. Keine der Lösungen, die ich online gefunden habe, hat für mich funktioniert. Ich verwende STS und das einzige, was funktioniert hat, war, in mein STS-Verzeichnis zu gehen und oben in der STS.ini-Datei eine "-reinigung" hinzuzufügen. Sie können dann Ihren Arbeitsbereich starten und maven clean fehlerfrei ausführen. (Sie können das Tag -clean auch aus der INI-Datei entfernen, damit es nicht bei jedem Start bereinigt wird.)

Hoffe das hilft jemandem.


0

Das Hauptproblem in meinem Fall war ein Dateikonflikt im Ordner .settings. Das Löschen des Ordners .settings hätte den Maven-Fehler behoben, aber ich wollte einige meiner lokalen Konfigurationsdateien behalten. Ich habe den Konflikt gelöst, dann erneut ein Maven-Update versucht und es hat funktioniert.


0

Ich hatte das gleiche Problem ... Lösung am Ende!

hier das Eclipse-Protokoll:

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)

... es kommt vom "Appengine Maven WTP Plugin", das versucht, den Typ der GAE-Laufzeit zu erhalten, scheint aber hier null zu sein (... getRuntimeType () -> NPE):

Siehe Klasse 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)) {

Wenn Sie Eclipse einchecken, wird Google App Engine angezeigt. Wenn Sie es jedoch auswählen, wird kein SDK zugeordnet. Präferenz- / Server- / Laufzeitumgebungen

LÖSUNG: in rot auf dem Screenshot ;-)


0

Ich bin auf dasselbe Symptom gestoßen und keine der oben genannten Lösungen war hilfreich. Ich habe endlich einen Stack-Trace des Problems erhalten, indem ich das ear-Projekt erneut in Eclipse importiert habe, und konnte dies bis zur org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement zurückverfolgen, die versucht hat, ein Verzeichnis im temporären Windows-Verzeichnis mit dem Namen " .mavenDeploymentDescriptorManagement ", was eine irrationale NullPointerException von der Methode java.io.File.exists () verursachte, insbesondere weil der Code in einer vorherigen Methode mit derselben Variablen, die dann file.isFile () ohne aufgerufen wurde, bereits erfolgreich dasselbe ausgeführt hatte Problem.

Das Auschecken im Dateisystem ergab, dass auf die Datei nur mit Administratorrechten zugegriffen werden konnte. Anscheinend hatte ich irgendwann versehentlich Eclipse von einer Administratorkonsole aus gestartet. Am Ende habe ich nur versteckte Dateien im Windows Explorer sichtbar gemacht und die temporäre Datei manuell gelöscht, wodurch das Problem behoben wurde.


0

Nur eine weitere mögliche Ursache des Problems!

Ich fand heraus, dass es in meinem Fall der folgende resourceBlock war, der es verursachte:

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

Es enthielt einen Ordner aus dem Projektordner (das Eclipse-Projekt ist ein Unterordner des versionierten Projektordners ).

In meinem Fall könnte ich den Fehler beheben, indem ich den Block entferne und ihn durch einen Aufruf des Build Helper Maven-Plugins ersetze :

<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

Ich musste Eclipse neu installieren, den Ordner .m2 löschen und die Jars neu erstellen.


0

In meinem Fall war das Problem ein Konflikt von abgeleiteten Abhängigkeiten, die von anderen Abhängigkeiten verwendet wurden, und einige dieser abgeleiteten Abhängigkeitsversionen waren nicht verfügbar, möglicherweise weil einige Bereitstellungen, die ich vergessen habe, weil bei der Auflösung des Arbeitsbereichs alles funktionierte, aber beim Verschieben zu anderen Umgebung brach alles plötzlich. Und ich habe auch mit Versionsbereichen gearbeitet

Maven gab mir diesen Fehler:

Abhängigkeiten für Projekt MyProject konnten nicht aufgelöst werden: MyProject: jar: 1.0.0: Versionskonflikt zwischen Abhängigkeit-A: 1.0.1 -> Abhängigkeit-B: 1.1.0 -> Abhängigkeit-C: 1.0.0 , Abhängigkeit- konnte nicht gelöst werden X: 1.0.1 -> Abhängigkeit-Y: 1.1.0 -> Abhängigkeit-C: 1.0.0 , Abhängigkeit-I: 1.0.1 -> Abhängigkeit-J: 1.1.0 -> Abhängigkeit-C: 1.0.0

Ich habe alles oben versucht und nichts hat funktioniert, also ...

DIE LÖSUNG : Verwenden Sie LATEST als Version in allen Abhängigkeiten, sodass Maven nicht alle Abhängigkeiten in Bereichen auflösen muss. Diese müssen mit Vorsicht verwendet werden, da der Build fehlschlägt, wenn Sie eine der Abhängigkeiten nicht bereitstellen

Ich empfehle Ihnen nur, LATEST zu verwenden, wenn Sie mit Ihren eigenen Abhängigkeiten arbeiten. Andernfalls können in zukünftigen Versionen von Drittanbietern Kompilierungs- oder Laufzeitfehler auftreten


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.