Une erreur interne s'est produite lors de: «Mise à jour du projet Maven». java.lang.NullPointerException


91

Je développe un projet web Java EE. Lorsque j'essaye d'ajouter une dépendance, ce message d'erreur s'affiche. J'utilise Eclipse Kepler.

Une erreur interne s'est produite lors de: "Mise à jour du projet Maven". java.lang.NullPointerException

Pourriez-vous m'aider? Je vous remercie.

entrez la description de l'image ici


1
Utilisez-vous eclipse? pouvez-vous publier toute la trace de la pile? Vous pouvez le trouver dans la vue "Journal des erreurs".
Pablo Lascano

effacez votre .metadata dans le dossier de l'espace de travail, peut résoudre ce problème. Mais vous perdez les configurations de votre espace de travail. = (
Fernando Gomes

Réponses:


152

J'ai résolu le mien en supprimant le .settingsdossier et le .projectfichier dans le projet, puis en réimportant le projet.


4
J'ai essayé beaucoup de choses, et c'est le dossier .settings qui l'a fait pour moi.
simon

Cela a aidé! Mais, comme j'utilisais la résolution de l'espace de travail pour résoudre certaines dépendances pom à un projet dans le même espace de travail, j'ai dû désactiver la résolution de l'espace de travail, puis désactiver la nature Maven, puis réactiver Maven sur le projet.
mcolley73

1
Jep, cela a fonctionné pour moi, il semble que cela faisait également référence à une version de Google App Engine que je n'avais plus (elle a été mise à jour)
Dieter Hubau

A également dû redémarrer eclipse avant de réimporter.
rakmoh

Je l'ai résolu en supprimant simplement tous les fichiers .settings, en les fermant avant Eclipse. Ensuite, j'ai exécuté une mise à jour maven.
isma.imc

25

Pour moi a travaillé la réponse que j'ai trouvée sur CodeRanch , par l'utilisateur Maneesh Godbole :

  1. Fermez l'éclipse.
  2. Accédez à votre dossier «espace de travail»
  3. Assurez-vous que le paramètre sur votre système d'exploitation pour afficher les fichiers cachés est activé
  4. Identifiez et supprimez le répertoire .metadata
  5. Redémarrer eclipse
  6. Importer un projet

1
C'était la seule réponse ici qui a fonctionné pour moi. Les entités .settings et .project étaient recréées au démarrage, provoquant le même problème jusqu'à ce que je supprime le dossier de métadonnées. +1 & thx!
Mark W du

@MarkW Je suis heureux que cela ait aidé :-)
Eel Lee

Pour moi, cela fonctionne, mais j'avais besoin de reconfigurer tout mon espace de travail. = (
Fernando Gomes

il supprime tous mes paramètres sur eclipse. La mise en page, les perspectives et les couleurs ont disparu.
Umut

6

J'ai eu le même problème dans l'un de mes modules.

Lancer "mvn eclipse: eclipse" dans la console / cmd a résolu le problème pour moi.


3

Dans notre exemple de ce problème, nous avions des pom.xmlfichiers dans lesquels la configuration du mappage du cycle de vie spécifique à m2e

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

n'avait pas le <version>1.0.0</version>rôle. Lorsque vous effectuez un Maven -> Update Project ..., cela provoque le NullPointerException signalé sans trace de pile. Lors de l'utilisation d'une nouvelle importation ... -> Projets Maven existants, la même exception s'est produite, mais avec une trace de pile qui m'a amené à trouver ce qui précède.

(C'est avec m2e 1.6.1.20150625-2338 dans Eclipse Luna Service Release 2 (4.4.2).)


1
C'était le cas pour moi. Je suppose que le problème décrit a de nombreuses causes différentes.
Aleksandr Erokhin

2

Au cas où cela aiderait quelqu'un, en plus de supprimer .settingset .project, j'ai dû supprimer .classpathet .factorypathavant de pouvoir importer le projet avec succès dans Eclipse.


1

Le fichier org.eclipse.m2e.core.prefs se trouve dans le dossier .settings . Si vous rencontrez le problème de

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

Supprimer le projet d'éclipse , puis en supprimant le .settings dossier et .project fichier dans le projet -> puis réimporter le projet.


Cette réponse existe déjà et a le plus de votes positifs, donc je ne vois aucun intérêt à publier un doublon.
Eel Lee

Quelqu'un at-il mentionné "org.eclipse.m2e.core.prefs"? Je veux dire quelle est la raison du problème.
Jyoti Prakash

Peut-être un commentaire sur la réponse principale est le meilleur endroit pour discuter du pourquoi
J. Allen

1

Cela m'a aidé: Project menu -> Clean... -> clean all projects



1

Eclipse a un journal des erreurs. Là, vous verrez la trace complète de la pile. Dans mon cas, cela semble être causé par un mauvais fichier jar combiné avec les bibliothèques java.util.zip ne lançant pas une exception appropriée, juste une NullPointerException.


Dans mon cas, ce scénario a été déclenché par quelques JAR javadoc de Selenium, par exemple repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/… . Dans la source de l'Eclipse m2e sur git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/… , vous pouvez voir que la méthode getJavaDocPathInArchive n'attend pas un NullPointerException de en.nextElement ().
Jeremy K

Apparemment, la "NullPointerException" d'énumération d'un fichier ZIP est adressée dans Java 9 ( bugs.openjdk.java.net/browse/JDK-8048990 ).
Jeremy K

1

J'utilise:

Eclipse Java EE IDE pour les développeurs Web.

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

Le correctif / astuce pour moi était de supprimer mon référentiel local dans ~ / .m2 / repository afin de supprimer les dépendances locales et de reconstruire mon projet dans lequel de nouvelles dépendances sont supprimées.


0

J'ai eu le même problème. Aucune des solutions ici n'a fonctionné. J'ai dû réinstaller complètement eclipse et créer un nouvel espace de travail. Ensuite, cela a fonctionné!


0

Aucune des méthodes ci-dessus n'a fonctionné pour moi. Cela peut également se produire en raison de la présence d'une dépendance circulaire dans votre espace de travail éclipse. Donc, s'il y a d'autres erreurs présentes dans l'un des autres projets de votre espace de travail, essayez de les corriger et ce problème disparaîtra. C'est ainsi que j'ai éliminé l'erreur.


0

J'ai eu ce même problème sur plusieurs projets et plusieurs espaces de travail, aucune des solutions que j'ai trouvées en ligne ne fonctionnait pour moi. J'utilise STS et la seule chose qui a fonctionné était d'aller dans mon répertoire STS et d'ajouter un "-clean" en haut du fichier STS.ini. Vous pouvez ensuite démarrer votre espace de travail et exécuter maven clean sans erreur. (vous pouvez également supprimer la balise -clean du fichier ini pour qu'elle ne soit pas nettoyée à chaque fois que vous le démarrez)

J'espère que cela aide quelqu'un.


0

Le problème racine dans mon cas était un conflit de fichiers dans le dossier .settings. Ainsi, la suppression du dossier .settings aurait résolu l'erreur Maven, mais je voulais conserver certains de mes fichiers de configuration locaux. J'ai résolu le conflit, puis essayé à nouveau une mise à jour Maven et cela a fonctionné.


0

J'ai eu le même problème ... solution à la fin!

voici le journal des éclipses:

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)

... il vient de "appengine maven wtp plugin" qui essaie d'obtenir le type d'exécution GAE, mais semble être nul ici (... getRuntimeType () -> NPE):

voir la classe 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)) {

Donc, si vous enregistrez eclipse, Google App Engine est visible, mais lorsque vous le sélectionnez, vous verrez qu'aucun SDK n'est associé ... Préférence / Serveur / Environnements d'exécution

SOLUTION: en rouge sur la capture d'écran ;-)


0

J'ai rencontré ce même symptôme et aucune des solutions ci-dessus n'a été utile. J'ai finalement eu une trace de pile du problème en important à nouveau le projet ear dans eclipse, et j'ai pu retracer cela jusqu'à org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement qui essayait de supprimer un répertoire dans le répertoire temporaire de Windows appelé " .mavenDeploymentDescriptorManagement ", qui a provoqué une exception NullPointerException irrationnelle de la méthode java.io.File.exists (), en particulier parce que le code avait déjà réussi à faire la même chose dans une méthode précédente avec la même variable, puis appelé file.isFile () sans problème.

La vérification de cela sur le système de fichiers a révélé que le fichier n'était accessible qu'avec des privilèges d'administrateur. Apparemment, j'avais à un moment donné lancé eclipse à partir d'une console administrateur par erreur. En fin de compte, j'ai simplement rendu les fichiers cachés visibles dans l'explorateur Windows et supprimé le fichier temporaire manuellement, ce qui a résolu le problème.


0

Juste une autre source possible du problème!

J'ai découvert que dans mon cas, c'était le resourceblocage suivant qui en était la cause:

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

Il comprenait un dossier du dossier du projet (le projet eclipse est un sous-dossier du dossier du projet versionné ).

Dans mon cas, je pourrais supprimer l'erreur en supprimant le bloc et en le remplaçant par un appel au 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

J'ai dû réinstaller eclipse, supprimer le dossier .m2 et reconstruire les bocaux.


0

Dans mon cas, le problème était un conflit de dépendances dérivées qui ont été utilisées par d'autres dépendances, et certaines de ces versions de dépendances dérivées n'étaient pas disponibles, peut-être parce que certains déploient que j'ai oublié de faire car avec la résolution de l'espace de travail, tout fonctionnait, mais lors du déplacement à un autre environnement tout s'est brisé soudainement. Et aussi je travaillais avec des gammes de versions

maven me donnait cette erreur:

Impossible de résoudre les dépendances pour le projet MyProject: MyProject: jar: 1.0.0: Impossible de résoudre le conflit de version entre 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

J'ai essayé tout ci-dessus et rien n'a fonctionné, alors ...

LA SOLUTION : utilisez DERNIÈRE comme version dans toutes les dépendances, donc maven n'a pas besoin de résoudre toutes les dépendances dans les plages, qui doivent être utilisées avec précaution car si vous manquez de déployer l'une des dépendances, la construction échouera

Seulement je vous suggère d'utiliser DERNIER si vous travaillez avec vos propres dépendances, sinon dans une version future d'un tiers, vous pourriez trouver des erreurs de compilation ou d'exécution


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.