java.lang.IllegalArgumentException: Codificación \uxxxx mal formada durante la instalación de mvn

10 minutos de lectura

Mientras ejecuto mvn install en mi proyecto, termino con este error. Si bien muchas respuestas y recursos señalan errores en / contra \, quiero mencionar que no tengo cambios locales y este repositorio funciona bien para otros miembros de mi equipo. A mí también me funcionó bien antes.

Ejecutándose en Mac Os 10.15.7 con JDK 1.8.0_291

Encuentre el stacktrace completo:

java.lang.IllegalArgumentException: Malformed \uxxxx encoding.
    at java.util.Properties.loadConvert (Properties.java:672)
    at java.util.Properties.load0 (Properties.java:455)
    at java.util.Properties.load (Properties.java:408)
    at org.eclipse.aether.internal.impl.TrackingFileManager.read (TrackingFileManager.java:56)
    at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.read (DefaultUpdateCheckManager.java:511)
    at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.checkMetadata (DefaultUpdateCheckManager.java:250)
    at org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolve (DefaultMetadataResolver.java:302)
    at org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolveMetadata (DefaultMetadataResolver.java:181)
    at org.apache.maven.repository.internal.DefaultVersionRangeResolver.getVersions (DefaultVersionRangeResolver.java:198)
    at org.apache.maven.repository.internal.DefaultVersionRangeResolver.resolveVersionRange (DefaultVersionRangeResolver.java:148)
    at org.apache.maven.repository.internal.DefaultModelResolver.resolveModel (DefaultModelResolver.java:197)
    at org.apache.maven.model.building.DefaultModelBuilder.readParentExternally (DefaultModelBuilder.java:1070)
    at org.apache.maven.model.building.DefaultModelBuilder.readParent (DefaultModelBuilder.java:846)
    at org.apache.maven.model.building.DefaultModelBuilder.build (DefaultModelBuilder.java:337)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom (DefaultArtifactDescriptorReader.java:292)
    at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor (DefaultArtifactDescriptorReader.java:171)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.resolveCachedArtifactDescriptor (DefaultDependencyCollector.java:538)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.getArtifactDescriptorResult (DefaultDependencyCollector.java:523)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:410)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.doRecurse (DefaultDependencyCollector.java:506)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:458)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.processDependency (DefaultDependencyCollector.java:362)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.process (DefaultDependencyCollector.java:349)
    at org.eclipse.aether.internal.impl.collect.DefaultDependencyCollector.collectDependencies (DefaultDependencyCollector.java:254)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.collectDependencies (DefaultRepositorySystem.java:284)
    at org.apache.maven.project.DefaultProjectDependenciesResolver.resolve (DefaultProjectDependenciesResolver.java:169)
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.getDependencies (LifecycleDependencyResolver.java:243)
    at org.apache.maven.lifecycle.internal.LifecycleDependencyResolver.resolveProjectDependencies (LifecycleDependencyResolver.java:147)
    at org.apache.maven.lifecycle.internal.MojoExecutor.ensureDependenciesAreResolved (MojoExecutor.java:248)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:202)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:957)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:289)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:193)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
    at jdk.internal.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:78)
    at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke (Method.java:567)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[ERROR] 

Ya he probado lo siguiente:

  1. Java reinstalado en mi mac
  2. experto reinstalado
  3. Intenté invalidar el caché y reiniciar IntelliJ varias veces.

  • Tengo problemas similares. Se revirtieron todos los cambios locales y aún se obtuvo el problema. Trabajé más temprano hoy y estoy bastante seguro de que no he tenido ninguna actualización.

    – Sebastián L.

    16 de junio de 2021 a las 14:33

  • @SebastianL Encuentre mi respuesta, funcionó para mí

    – Shylajhaa

    16 de junio de 2021 a las 16:24

Avatar de usuario de Roy van Santen
Roy van Santen

Para mí resultó ser una dependencia corrupta también.
No quería pasar por el proceso de configuración del depurador, así que decidí buscar archivos que contuvieran \u0000 en mi ~/.m2 directorio ejecutando:

grep -rnw ~/.m2 -e '\u0000'

después de eso, obtendrá los archivos que están dañados, elimínelos y luego construya el maven.

Tenga en cuenta que debe especificar la carpeta de su repositorio si la configuró de manera diferente a la predeterminada. Lee tu ~/.m2/settings.xml y usa el valor de localRepository en cambio. P.ej:

<settings>
  <localRepository>/else/where</localRepository>

usar:

grep -rnw /else/where -e '\u0000'

y si desea que se eliminen todos estos archivos, canalice los nombres de archivo a xargs rm:

grep -lrnw /else/where -e '\u0000' | xargs rm

  • Esto es lo que funcionó para mí. En macOS, ejecuté “grep -r -e ‘\u0000’ ~/.m2” y arrojó el resolver-ststus.properties correcto que, después de eliminar la dependencia, fue reemplazado por uno correcto y todo funcionó.

    – Jubz

    24 de septiembre de 2021 a las 10:09

  • necesito repasar grep opciones Esto es más conciso que lo que hice: find ~/.m2 -name "resolver-status.properties" -print -exec grep "u0" {} \;

    – triple.vee

    13 de diciembre de 2021 a las 3:30


  • salvó mi día ¡Gracias por el consejo!

    – Beethoven

    1 abr a las 12:37

  • Para mí fue uno de los archivos _remote.repositories que estaba roto

    – mvmn

    29 abr a las 12:41


  • en caso de que las personas tengan problemas en Windows, puede ejecutar este comando dentro del directorio .m2 FINDSTR /S /M "u0" resolver-status.properties para encontrar archivos dañados.

    – Manish Bansal

    9 jun a las 10:24

Para encontrar qué archivo tiene un formato incorrecto (para no tener que eliminar todo el repositorio de Maven), puede depurarlo así:

  1. Agregue un punto de interrupción a la línea relevante en java.util.Properties (como se detalla en el seguimiento de la pila de errores) y luego ejecute cualquier acción de Maven en modo de depuración.

ingrese la descripción de la imagen aquí

  1. Cuando el código llegue a ese punto de interrupción, busque y seleccione TrackingFileManager.read(File) en la pila de llamadas.

ingrese la descripción de la imagen aquí

  1. Ahora encuentre la ruta del archivo que causó el problema.

ingrese la descripción de la imagen aquí

  1. De hecho, el archivo tiene un formato incorrecto… Elimine el archivo (y Maven lo volverá a descargar durante la siguiente acción).

ingrese la descripción de la imagen aquí

  1. El archivo correcto (después de haber sido borrado y vuelto a descargar):

ingrese la descripción de la imagen aquí

  • Esta es realmente una gran respuesta con los detalles paso a paso para encontrar el archivo exacto. El paso 1 (agregar un punto de interrupción en IntelliJ y usarlo con maven) se puede configurar usando lo siguiente: spin.atomicobject.com/2020/08/20/maven-debugging-intellij

    – fantasma

    7 oct 2021 a las 7:30

  • No funciona si ha compilado dependencias.

    – Codificador empañado

    19 oct 2021 a las 17:05

Avatar de usuario de Alexey Poletaev
aleksey poletaev

En mi caso, el problema estaba en la biblioteca de terceros, los caracteres incorrectos de alguna manera se guardaron en el resolver-status.properties archivo (ejemplo de línea incorrecta: maven-metadata-nexus-releases.xml.lastUpda\u0000\u0000\....) que se encuentra debajo de la ~/.m2/repository/path-to-the-library. Simplemente eliminó la carpeta con la biblioteca y reconstruyó el proyecto.

  • ¿Cómo se corrompen estos archivos? ¿Es un error con mvn o estoy abusando de mvn de una manera que no debería usarse?

    – Joseph

    22 oct 2021 a las 13:43

  • Tengo este problema una y otra vez!

    – Boris Brodsky

    28 de octubre de 2021 a las 5:28

  • Parece ser un error en Maven 3.8.1. El problema reapareció una y otra vez incluso después de eliminar las bibliotecas del repositorio local de Maven. Actualizar a la última versión de Maven 3.8.3 y reconstruir con esa versión solucionó el problema.

    – Madjosz

    3 de noviembre de 2021 a las 10:19


Eliminé todos los artefactos de mi directorio ~/.m2 y volví a ejecutar mvn build. ¡Esta vez, la compilación tuvo éxito!

Avatar de usuario de Rafi
Rafi

En realidad, la mayoría de esas respuestas son correctas, pero un poco incompletas. Aparece el mensaje porque resolver-status.properties los archivos se corrompen y contienen \u0000 como se muestra en la respuesta de micycle. A veces ayuda eliminar archivos dañados y volver a ejecutar el comando maven. A veces el problema desaparece ya veces no. Surge la pregunta POR QUÉ esos archivos se corrompen. Bueno, parece que maven contiene un error en resolver: https://issues.apache.org/jira/browse/MRESOLVER-216

Parece que la sincronización de varios subprocesos responsables de resolver las dependencias está rota y, en algunas condiciones, varios subprocesos resuelven el mismo artefacto y se rompen. resolver-status.properties como lo muestra miciclo.

En caso de que su compilación aún no se complete con éxito a pesar de eliminar los archivos rotos, es posible que desee limitar los subprocesos de resolución a uno. Para hacer eso, use la propiedad JVM:

-Daether.metadataResolver.threads=1

Si está utilizando IntelliJ Idea use Settings->Build,Execution,Deployment->Maven->Runner campo VMOptions:

IntelliJ IDEA 2021.3.1

Después de hacer este cambio, recuerde eliminar los archivos rotos (o completos). .m2 directorio) porque una vez que los archivos se corrompen, no se repararán. Luego vuelva a ejecutar su compilación Maven.

  • Para mí fue uno de los archivos _remote.repositories que estaba roto

    – mvmn

    29 abr a las 12:42

avatar de usuario de patel
patel

eliminar la carpeta .m2 y volver a instalar la dependencia funcionó para mí.

  • Para mí fue uno de los archivos _remote.repositories que estaba roto

    – mvmn

    29 abr a las 12:42

avatar de usuario de kamdzi
kamdzi

El problema es probable en una de sus dependencias (igual que lo sugerido por Alexey). Para mí, el problema era encontrar la dependencia correcta que corrompió resolver-status.properties. Lo que ayudó fue ejecutar mvn clean install en modo de depuración (usando la depuración de configuración de Intellig) y colocar el punto final en Properties.java (la línea exacta debe estar en un seguimiento de pila cuando se ejecuta con la opción -e o -X). En la depuración, puede encontrar fácilmente qué dependencia está dañada y eliminar solo esta dependencia en lugar de todo el catálogo .m2

¿Ha sido útil esta solución?