Se produjo un error interno durante: "Actualización del proyecto Maven". java.lang.NullPointerException


91

Estoy desarrollando un proyecto web Java EE. Cuando intento agregar una dependencia, aparece este mensaje de error. Yo uso Eclipse Kepler.

Se produjo un error interno durante: "Actualización del proyecto Maven". java.lang.NullPointerException

¿Usted me podría ayudar? Gracias.

ingrese la descripción de la imagen aquí


1
¿Estás usando eclipse? ¿Puedes publicar todo el seguimiento de la pila? Puede encontrarlo en la vista "Registro de errores".
Pablo Lascano

borre su .metadata en la carpeta del espacio de trabajo, puede resolver esto. Pero pierde configuraciones de su espacio de trabajo. = (
Fernando Gomes

Respuestas:


152

Resolví el mío eliminando la .settingscarpeta y el .projectarchivo en el proyecto y luego reimportando el proyecto.


4
Probé muchas cosas, y fue la carpeta .settings la que lo hizo por mí.
Simon

¡Esto ayudó! Pero, debido a que estaba usando la resolución del espacio de trabajo para resolver algunas dependencias pom de un proyecto en el mismo espacio de trabajo, tuve que deshabilitar la resolución del espacio de trabajo, luego deshabilitar la naturaleza de Maven y luego volver a habilitar Maven en el proyecto.
mcolley73

1
Jep, eso funcionó para mí, parece que también se refería a una versión de Google App Engine que ya no tenía (se actualizó)
Dieter Hubau

También tuve que reiniciar eclipse antes de volver a importar.
rakmoh

Lo resolví simplemente eliminando todos los archivos .settings, cerrando antes de Eclipse. Luego ejecuté una actualización de maven.
isma.imc

25

Para mí funcionó la respuesta que encontré en CodeRanch , por el usuario Maneesh Godbole :

  1. Cierre el eclipse.
  2. Navega a tu carpeta "área de trabajo"
  3. Asegúrese de que la configuración de su sistema operativo para ver archivos ocultos esté activada
  4. Identificar y eliminar el directorio .metadata
  5. Reiniciar eclipse
  6. Importar proyecto

1
Esta fue la única respuesta aquí que funcionó para mí. Las entradas .settings y .project se estaban recreando en el inicio, causando el mismo problema hasta que eliminé la carpeta de metadatos. +1 y gracias!
Mark W

@MarkW Me alegro de haber ayudado :-)
Eel Lee

Para mí funciona, pero necesitaba volver a configurar todo mi espacio de trabajo. = (
Fernando Gomes

Elimina todas mis configuraciones en eclipse. El diseño, las perspectivas y los colores desaparecieron.
Umut

6

Tuve el mismo problema en uno de mis módulos.

Ejecutar "mvn eclipse: eclipse" en la consola / cmd me resolvió el problema.


3

En nuestra instancia de este problema, teníamos pom.xmlarchivos donde la configuración de mapeo del ciclo de vida específico de m2e

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

no tenia el <version>1.0.0</version> papel. Al hacer un Maven -> Actualizar proyecto ..., esto causa la NullPointerException reportada sin un seguimiento de pila. Al usar una nueva importación ... -> Proyectos existentes de Maven, se produjo la misma excepción, pero con un seguimiento de pila que me llevó a encontrar lo anterior.

(Esto es con m2e 1.6.1.20150625-2338 en Eclipse Luna Service Release 2 (4.4.2).)


1
Este fue mi caso. Supongo que el problema descrito tiene muchas causas diferentes.
Aleksandr Erokhin

2

En caso de que ayude a alguien, además de eliminar .settingsy .project, tuve que eliminar .classpathy .factorypathantes de poder importar el proyecto con éxito a Eclipse.


1

El archivo org.eclipse.m2e.core.prefs está en la carpeta .settings . Si te enfrentas al problema de

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

Elimine el proyecto de eclipse y luego elimine la carpeta .settings y el archivo .project en el proyecto -> luego vuelva a importar el proyecto.


Esta respuesta ya existe y tiene la mayor cantidad de votos a favor, por lo que no veo ningún sentido en publicar un duplicado.
Eel Lee

¿Alguien mencionó sobre "org.eclipse.m2e.core.prefs"? Quiero decir cuál es la razón del problema.
Jyoti Prakash

Quizás un comentario sobre la respuesta principal sea el mejor lugar para discutir el por qué
J. Allen

1

Esto me ayudó: Project menu -> Clean... -> clean all projects



1

Eclipse tiene un registro de errores. Allí verá el seguimiento completo de la pila. En mi caso, parece ser causado por un archivo jar incorrecto combinado con las librerías java.util.zip que no arrojan una excepción adecuada, solo una NullPointerException.


En mi caso, este escenario fue provocado por un par de JAR javadoc de Selenium, por ejemplo, repo1.maven.org/maven2/org/seleniumhq/selenium/selenium-java/… . En la fuente de Eclipse m2e en git.eclipse.org/c/m2e/m2e-core.git/tree/org.eclipse.m2e.jdt/src/… , puede ver que el método getJavaDocPathInArchive no espera un NullPointerException de en.nextElement ().
Jeremy K

Aparentemente, la "NullPointerException" de enumerar un archivo ZIP se aborda en Java 9 ( bugs.openjdk.java.net/browse/JDK-8048990 ).
Jeremy K

1

Estoy usando:

Eclipse Java EE IDE para desarrolladores web.

Versión: Neon.3 Release (4.6.3) Id. De compilación: 20170314-1500

La solución / truco para mí fue eliminar mi repositorio local en ~ / .m2 / repository para eliminar las dependencias locales y reconstruir mi proyecto en el que se eliminan las nuevas dependencias.


0

Yo tuve el mismo problema. Ninguna de las soluciones aquí funcionó. Tuve que reinstalar completamente eclipse y crear un nuevo espacio de trabajo. ¡Entonces funcionó!


0

Ninguno de los métodos anteriores funcionó para mí. Esto también puede surgir debido a la presencia de dependencia circular en su espacio de trabajo de eclipse. Entonces, si hay otros errores presentes en cualquiera de los otros proyectos en su espacio de trabajo, intente solucionarlos y luego este problema desaparecerá. Así es como eliminé el error.


0

Tuve este mismo problema en múltiples proyectos y múltiples espacios de trabajo, ninguna de las soluciones que encontré en línea funcionó para mí. Estoy usando STS y lo único que funcionó fue ir a mi directorio STS y agregar un "-clean" en la parte superior del archivo STS.ini. A continuación, puede iniciar su espacio de trabajo y ejecutar maven clean sin errores. (también puede eliminar la etiqueta -clean del archivo ini para que no se limpie cada vez que lo inicie)

Espero que esto ayude a alguien.


0

El problema raíz en mi caso fue un conflicto de archivos en la carpeta .settings. Por lo tanto, eliminar la carpeta .settings habría resuelto el error de Maven, pero quería conservar algunos de mis archivos de configuración locales. Resolví el conflicto, luego intenté una actualización de Maven nuevamente y funcionó.


0

Tuve el mismo problema ... ¡solución al final!

aquí el registro del eclipse:

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 de "appengine maven wtp plugin" que intenta obtener el tipo de tiempo de ejecución GAE, pero parece ser nulo aquí (... getRuntimeType () -> NPE):

ver clase 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)) {

Entonces, si registra eclipse, Google App Engine es visible, pero cuando lo seleccione verá que no hay SDK asociado ... preferencias / servidor / entornos de tiempo de ejecución

SOLUCIÓN: en rojo en la captura de pantalla ;-)


0

Encontré este mismo síntoma y ninguna de las soluciones anteriores fue útil. Finalmente obtuve un seguimiento de la pila del problema al importar el proyecto ear nuevamente a eclipse, y pude rastrear esto hasta org.eclipse.m2e.wtp.MavenDeploymentDescriptorManagement que estaba tratando de eliminar un directorio en el directorio temporal de Windows llamado " .mavenDeploymentDescriptorManagement ", que provocó una NullPointerException irracional del método java.io.File.exists (), particularmente porque el código ya había hecho lo mismo con éxito en un método anterior con la misma variable, luego llamado file.isFile () sin problema.

Verificar esto en el sistema de archivos reveló que solo se podía acceder al archivo con privilegios de administrador. Aparentemente, en algún momento lancé eclipse desde una consola de administrador por error. Al final, hice visibles los archivos ocultos en el explorador de Windows y eliminé el archivo temporal manualmente, lo que resolvió el problema.


0

¡Solo otra posible fuente del problema!

Descubrí que en mi caso fue el siguiente resourcebloqueo el que lo causó:

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

Incluía una carpeta de la carpeta del proyecto (el proyecto eclipse es una subcarpeta de la carpeta del proyecto con versión ).

En mi caso, podría eliminar el error eliminando el bloque y reemplazándolo con una llamada al complemento 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

Tuve que reinstalar eclipse, eliminar la carpeta .m2 y reconstruir los frascos.


0

En mi caso, el problema fue un conflicto de dependencias derivadas que fueron utilizadas por otras dependencias, y algunas de esas versiones de dependencias derivadas no estaban disponibles, tal vez porque algunas implementaciones que olvidé hacer porque con la resolución del espacio de trabajo todo funcionó, pero al mover a otro entorno todo se rompió de repente. Y también estaba trabajando con rangos de versiones.

maven me estaba dando este error:

No se pudieron resolver las dependencias para el proyecto MyProject: MyProject: jar: 1.0.0: No se pudo resolver el conflicto de versiones entre Dependency-A: 1.0.1 -> Dependency-B: 1.1.0 -> Dependency-C: 1.0.0 , Dependency- X: 1.0.1 -> Dependencia-Y: 1.1.0 -> Dependencia-C: 1.0.0 , Dependencia-I: 1.0.1 -> Dependencia-J: 1.1.0 -> Dependencia-C: 1.0.0

Intenté todo lo anterior y nada funcionó, así que ...

LA SOLUCIÓN : Use LATEST como versión en todas las dependencias, por lo que maven no necesita resolver todas las dependencias en los rangos, lo cual debe usarse con cuidado porque si no implementa una de las dependencias, la compilación fallará.

Solo le sugiero que use ÚLTIMO si está trabajando con sus propias dependencias; de lo contrario, en alguna versión futura de terceros, podría encontrar algunos errores de compilación o tiempo de ejecución


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.