Si è verificato un errore interno durante: "Aggiornamento del progetto Maven". java.lang.NullPointerException


91

Sto sviluppando un progetto web Java EE. Quando provo ad aggiungere una dipendenza, viene visualizzato questo messaggio di errore. Uso Eclipse Kepler.

Si è verificato un errore interno durante: "Aggiornamento del progetto Maven". java.lang.NullPointerException

Potresti aiutarmi? Grazie.

inserisci qui la descrizione dell'immagine


1
Stai usando eclipse? puoi pubblicare l'intera traccia dello stack? Puoi trovarlo nella vista "Registro errori".
Pablo Lascano

cancella i tuoi .metadata nella cartella dell'area di lavoro, puoi risolvere questo problema. Ma perdi le configurazioni del tuo spazio di lavoro. = (
Fernando Gomes

Risposte:


152

Ho risolto il mio eliminando la .settingscartella e il .projectfile nel progetto e quindi reimportando il progetto.


4
Ho provato molte cose, ed è stata la cartella .settings a farlo per me.
simon

Questo ha aiutato! Tuttavia, poiché stavo utilizzando la risoluzione dell'area di lavoro per risolvere alcune dipendenze pom a un progetto nello stesso spazio di lavoro, ho dovuto disabilitare la risoluzione dell'area di lavoro, quindi disabilitare la natura di Maven, quindi riabilitare Maven sul progetto.
mcolley73

1
Jep, per me ha funzionato, sembra che si riferisse anche a una versione di Google App Engine che non avevo più (è stata aggiornata)
Dieter Hubau

Inoltre ha dovuto riavviare eclipse prima di reimportare.
rakmoh

L'ho risolto eliminando tutti i file .settings, chiudendoli prima di Eclipse. Quindi ho eseguito un aggiornamento esperto.
isma.imc

25

Per me ha funzionato la risposta che ho trovato su CodeRanch , dall'utente Maneesh Godbole :

  1. Chiudi l'eclissi.
  2. Passa alla cartella "spazio di lavoro"
  3. Assicurati che l'impostazione sul tuo sistema operativo per visualizzare i file nascosti sia attivata
  4. Identifica ed elimina la directory .metadata
  5. Riavvia Eclipse
  6. Importa progetto

1
Questa era l'unica risposta qui che ha funzionato per me. Le entità .settings e .project venivano ricreate all'avvio, causando lo stesso problema fino a quando non ho eliminato la cartella dei metadati. +1 e grazie!
Mark W

@MarkW Sono contento che abbia aiutato :-)
Eel Lee

Per me funziona, ma avevo bisogno di riconfigurare tutto il mio spazio di lavoro. = (
Fernando Gomes

cancella tutte le mie impostazioni su eclipse. Layout, prospettive e colori sono spariti.
Umut

6

Ho avuto lo stesso problema in uno dei miei moduli.

L'esecuzione di "mvn eclipse: eclipse" nella console / cmd ha risolto il problema per me.


3

Nel nostro caso di questo problema, avevamo pom.xmlfile in cui la configurazione della mappatura del ciclo di vita specifica di m2e

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

non ha avuto la <version>1.0.0</version>parte. Quando si esegue un Maven -> Aggiorna progetto ..., ciò causa la NullPointerException segnalata senza una traccia dello stack. Quando si utilizza una nuova importazione ... -> Progetti Maven esistenti, si è verificata la stessa eccezione, ma con una traccia dello stack che mi ha portato a trovare quanto sopra.

(Questo è con m2e 1.6.1.20150625-2338 in Eclipse Luna Service Release 2 (4.4.2).)


1
Questo è stato il caso per me. Immagino che il problema descritto abbia molte cause diverse.
Aleksandr Erokhin

2

Nel caso in cui aiuta qualcuno, oltre a cancellare .settingse .project, ho dovuto eliminare .classpathe .factorypathprima di poter importare con successo il progetto in Eclipse.


1

Il file org.eclipse.m2e.core.prefs si trova nella cartella .settings . Se affronti il ​​problema di

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

Elimina il progetto da eclipse quindi eliminando la cartella .settings e il file .project nel progetto -> quindi reimportare il progetto.


Questa risposta esiste già e ha il maggior numero di voti positivi, quindi non vedo alcun motivo per pubblicare un duplicato.
Eel Lee

Qualcuno ha parlato di "org.eclipse.m2e.core.prefs"? Voglio dire qual è la ragione dietro il problema.
Jyoti Prakash

Forse un commento sulla risposta principale è il posto migliore per discutere il perché
J. Allen

1

Questo mi ha aiutato: Project menu -> Clean... -> clean all projects



1

Eclipse ha un registro degli errori. Lì vedrai la traccia completa dello stack. Nel mio caso sembra essere causato da un file jar danneggiato combinato con le librerie java.util.zip che non generano un'eccezione adeguata, solo una NullPointerException.


Nel mio caso, questo scenario è stato attivato da un paio di JAR javadoc di Selenium, ad esempio, repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/… . Nel sorgente per Eclipse m2e su git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/… , puoi vedere che il metodo getJavaDocPathInArchive non prevede un NullPointerException da en.nextElement ().
Jeremy K

Apparentemente la "NullPointerException" derivante dall'enumerazione di un file ZIP viene risolta in Java 9 ( bugs.openjdk.java.net/browse/JDK-8048990 ).
Jeremy K

1

Sto usando:

Eclipse Java EE IDE per sviluppatori Web.

Versione: Neon.3 Release (4.6.3) ID build: 20170314-1500

La soluzione / trucco per me era eliminare il mio repository locale in ~ / .m2 / repository per rimuovere le dipendenze locali e ricostruire il mio progetto in cui le nuove dipendenze vengono eliminate.


0

Ho avuto lo stesso problema. Nessuna delle soluzioni qui ha funzionato. Ho dovuto reinstallare completamente eclipse e creare un nuovo spazio di lavoro. Poi ha funzionato!


0

Nessuno dei metodi sopra ha funzionato per me. Ciò potrebbe anche verificarsi a causa della presenza di dipendenza circolare nell'area di lavoro di eclipse. Quindi, se sono presenti altri errori in uno qualsiasi degli altri progetti nell'area di lavoro, prova a risolverli e il problema sarà risolto. È così che ho eliminato l'errore.


0

Ho riscontrato lo stesso problema su più progetti e più aree di lavoro, nessuna delle soluzioni che ho trovato online ha funzionato per me. Sto usando STS e l'unica cosa che ha funzionato è stata quella di andare nella mia directory STS e aggiungere un "-clean" all'inizio del file STS.ini. È quindi possibile avviare il proprio spazio di lavoro ed eseguire Maven clean senza errori. (puoi anche rimuovere il tag -clean dal file ini in modo che non venga pulito ogni volta che lo avvii)

Spero che questo aiuti qualcuno.


0

Il problema principale nel mio caso era un conflitto di file nella cartella .settings. Quindi, l'eliminazione della cartella .settings avrebbe risolto l'errore Maven, ma volevo mantenere alcuni dei miei file di configurazione locali. Ho risolto il conflitto, quindi ho provato di nuovo un aggiornamento Maven e ha funzionato.


0

Ho avuto lo stesso problema ... soluzione alla fine!

qui il registro delle eclissi:

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)

... proviene da "appengine maven wtp plugin" che cerca di ottenere il tipo di runtime GAE, ma qui sembra essere nullo (... getRuntimeType () -> NPE):

vedi class 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)) {

Quindi, se effettui il check in eclipse, Google App Engine è visibile, ma quando lo selezioni vedrai che nessun SDK è associato ... preferenze / Server / ambienti di runtime

SOLUZIONE: in rosso sullo screenshot ;-)


0

Ho riscontrato lo stesso sintomo e nessuna delle soluzioni sopra è stata utile. Alla fine ho ottenuto una traccia dello stack del problema importando nuovamente il progetto ear in eclipse, e sono stato in grado di rintracciarlo fino a org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement che stava cercando di eliminare una directory nella directory temporanea di Windows chiamata " .mavenDeploymentDescriptorManagement ", che ha causato un'irrazionale NullPointerException dal metodo java.io.File.exists (), in particolare perché il codice aveva già eseguito con successo la stessa cosa in un metodo precedente con la stessa variabile, quindi chiamato file.isFile () senza problema.

Il controllo di questo sul file system ha rivelato che è possibile accedere al file solo con i privilegi di amministratore. Apparentemente a un certo punto avevo lanciato eclipse da una console di amministrazione per errore. Alla fine ho appena reso visibili i file nascosti in Windows Explorer e cancellato manualmente il file temporaneo, il che ha risolto il problema.


0

Solo un'altra possibile fonte del problema!

Ho scoperto che nel mio caso è stato il seguente resourceblocco a causarlo:

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

Comprendeva una cartella dalla cartella del progetto (il progetto eclipse è una sottocartella della cartella del progetto con versione ).

Nel mio caso, potrei rimuovere l'errore rimuovendo il blocco e sostituendolo con una chiamata al plugin 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

Ho dovuto reinstallare eclipse, eliminare la cartella .m2 e ricostruire i vasi.


0

Nel mio caso, il problema era un conflitto di dipendenze derivate che erano state utilizzate da altre dipendenze, e alcune di quelle versioni di dipendenze derivate non erano disponibili, forse perché alcune distribuzioni che ho dimenticato di fare perché con la risoluzione dell'area di lavoro tutto ha funzionato, ma durante lo spostamento ad altro ambiente tutto si è rotto improvvisamente. E inoltre stavo lavorando con le gamme di versioni

maven mi stava dando questo errore:

Impossibile risolvere le dipendenze per il progetto MyProject: MyProject: jar: 1.0.0: Impossibile risolvere il conflitto di versione tra Dependency-A: 1.0.1 -> Dependency-B: 1.1.0 -> Dependency-C: 1.0.0 , Dependency- X: 1.0.1 -> Dependency-Y: 1.1.0 -> Dependency-C: 1.0.0 , Dependency-I: 1.0.1 -> Dependency-J: 1.1.0 -> Dependency-C: 1.0.0

Ho provato tutto sopra e niente ha funzionato, quindi ...

LA SOLUZIONE : Usa LATEST come versione in tutte le dipendenze, quindi Maven non ha bisogno di risolvere tutte le dipendenze negli intervalli, che devono essere usati con attenzione perché se manchi di distribuire una delle dipendenze la build fallirà

Solo io ti consiglio di usare LATEST se stai lavorando con le tue dipendenze, altrimenti in qualche futura versione di terze parti potresti trovare degli errori di compilazione o di runtime


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.