Recibo la siguiente excepción cuando ejecuto mi mvn install
. Incluso he eliminado el repositorio local y ejecuté nuevamente obteniendo la misma excepción.
[ERROR] Error al ejecutar el objetivo org.apache.maven.plugins: maven-shade-plugin: 2.1: sombreado (predeterminado) en el lote de núcleos del proyecto: Error al crear el jar sombreado: encabezado LOC no válido (firma incorrecta) -> [Ayuda 1 ]
<?xml version="1.0" encoding="UTF-8"?>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.1</version>
<configuration>
<skipTests>true</skipTests>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<artifactSet>
<excludes>
<exclude>commons-logging:commons-logging:jar:*</exclude>
</excludes>
</artifactSet>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<!-- workaround for a spring issues -->
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
<!-- don't want to pick up any other log4j.xml -->
<exclude>log4j.xml</exclude>
</excludes>
</filter>
</filters>
<!-- May be needed to work around another issue in Spring -->
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
Error:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.1:shade (default) on project cores-batch: Error creating shaded jar: invalid LOC header (bad signature) -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.1:shade (default) on project cores-batch: Error creating shaded jar: invalid LOC header (bad signature)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error creating shaded jar: invalid LOC header (bad signature)
at org.apache.maven.plugins.shade.mojo.ShadeMojo.execute(ShadeMojo.java:528)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
... 19 more
Caused by: java.util.zip.ZipException: invalid LOC header (bad signature)
at java.util.zip.ZipFile.read(Native Method)
at java.util.zip.ZipFile.access$1400(ZipFile.java:56)
at java.util.zip.ZipFile$ZipFileInputStream.read(ZipFile.java:679)
at java.util.zip.ZipFile$ZipFileInflaterInputStream.fill(ZipFile.java:415)
at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:158)
at java.io.FilterInputStream.read(FilterInputStream.java:107)
at org.codehaus.plexus.util.IOUtil.copy(IOUtil.java:189)
at org.codehaus.plexus.util.IOUtil.copy(IOUtil.java:175)
at org.apache.maven.plugins.shade.DefaultShader.addResource(DefaultShader.java:427)
at org.apache.maven.plugins.shade.DefaultShader.shade(DefaultShader.java:186)
at org.apache.maven.plugins.shade.mojo.ShadeMojo.execute(ShadeMojo.java:458)
... 21 more
[ERROR]
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
maven
jakarta-ee
deployment
jar
Karthick
fuente
fuente
mvn dependencies validate
o menos ...Respuestas:
Debe verificar qué jar está dando problemas. Debe estar corrompido. Elimina ese jar y ejecuta el
mvn spring-boot:run
comando nuevamente. Puede haber más de un jar dañado, así que cada vez que necesite ejecutar ese comando para eliminar ese jar. En mi caso, mysql, jackson, Aspect Jars se corrompió elmvn spring-boot:run
comando 3 veces y descubrí esto y eliminé los tarros de la.m2
carpeta. Ahora el problema se ha resuelto.fuente
El archivo jar puede estar dañado. Intente eliminar el contenido de la siguiente carpeta:
Luego haga clic derecho en su proyecto, seleccione Maven, Actualizar proyecto, verifique Forzar actualización de instantáneas / lanzamientos.
fuente
invalid LOC header
en la construcción de Gradle, simplemente eliminas la~/.gradle/caches
carpeta (Linux).El problema principal son los tarros corruptos.
Para encontrar el dañado, debe agregar un punto de interrupción de excepción de Java en la vista de puntos de interrupción de Eclipse, o su IDE preferido, seleccione la
java.util.zip.ZipException
clase y reinicie la instancia de Tomcat.Cuando la JVM se suspende en el
ZipException
punto de interrupción, debe ir alJarFile.getManifestFromReference()
seguimiento de la pila y verificar el atributoname
para ver el nombre del archivo.Después de eso, debe eliminar el archivo del sistema de archivos y luego hacer clic con el botón derecho en su proyecto, seleccionar Maven, Actualizar proyecto, verificar Forzar actualización de instantáneas / lanzamientos.
fuente
Desde gsitgithub / find-currupt-jars.txt , el siguiente comando enumera todos los archivos jar corruptos en el repositorio:
Puede eliminar los archivos jar dañados y volver a compilar el proyecto.
Salida de ejemplo:
fuente
sudo find ./repository/ -name "*jar" | sudo xargs -L 1 zip -T | grep error | grep invalid
me daxargs: zip: No such file or directory
. esto es usando bash en ubuntu en las ventanas, FYIzip -T
(prueba) en cada jarra debajorepository
y luego filtra qué jarras son archivos comprimidos no válidos. ¿Tieneszip
comando disponible?zip -T
en cada jarra almacenada en.m2/repository
. En Windows, puede ejecutarlo en Cygwin (/cygdrive/C/Users/torno/.m2/repository
) como lo hice yo, y creo que también puede ejecutarlo con Bash en Windows 10 (/mnt/c/Users/torno/.m2/repository
). No investigué cómo escribir un script equivalente con PowerShell, y creo que no debería ser posible con un indicador de cmd.Me gustaría dar mi dar mi práctica.
Use su IDE preferido, tome eclipse por ejemplo aquí:
fuente
La solución para mí fue correr
mvn
con-X
:Luego mire hacia atrás a través de la salida hasta que vea la falla y luego continúe hasta que vea el último archivo jar que mvn intentó procesar:
Mire el último frasco antes de que falle y elimínelo del repositorio local, es decir
fuente
Parece un problema de configuración para el compilador maven en su archivo pom. La versión predeterminada de origen y destino de Java es 1.5, incluso el JDK utilizado tiene una versión más alta.
Para solucionarlo, agregue la sección de configuración del complemento del compilador maven con una versión superior de Java, por ejemplo:
Para obtener más información, consulte estos enlaces:
compilador maven
informe de error
fuente
Esta respuesta no es para DevOps / administradores de sistemas, sino para aquellos que usan IDE como eclipse y enfrentan
invalid LOC header (bad signature)
problemas.Puede forzar la actualización de las dependencias de Maven de la siguiente manera:
fuente
Aquí hay un pequeño detector escrito en Java, solo copie y ejecute :)
fuente
Podemos forzar la validación de suma de comprobación en maven con al menos dos opciones:
1.Agregando el
--strict-checksums
comando a nuestro experto.2.Agregando la siguiente configuración a nuestro archivo de configuración de maven:
Más detalles en esta publicación: https://dzone.com/articles/maven-artifact-checksums-what
fuente
Más allá de eliminar .m2 / repositorio, elimine la aplicación del servidor, ejecute el servidor (sin aplicaciones), deténgala y agregue la aplicación nuevamente. Ahora se supone que funciona. Por alguna razón, simplemente limpiar las carpetas del servidor desde la interfaz no tiene el mismo efecto.
fuente
Estaba enfrentando este problema mientras desplegaba mi oído en mi instancia local de weblogic. Borrar el repositorio local y construir el oído nuevamente resolvió el problema por mí.
fuente