La implementación del proyecto Maven arroja Java.útil.Postal.ZipException: encabezado LOC no válido (firma incorrecta)


Estoy recibiendo la siguiente excepción cuando corro mi mvn install. Incluso he eliminado el repositorio local y corrí de nuevo obteniendo la misma excepción.

[ERROR] No se pudo ejecutar la meta org.apache.maven.plugins: maven-shade-plugin: 2.1: shade (predeterminado) on project cores-batch: Error al crear jar sombreado: encabezado LOC no válido (bad signature) - > [Help 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
Author: Paolo Forgia, 2015-08-19

15 answers

Es necesario comprobar qué tarro está dando problema. Debe estar corrompido. Borra ese jar y vuelve a ejecutar el comando mvn spring-boot:run. Puede ser que más de un jar se haya corrompido, por lo que cada vez que necesite ejecutar ese comando para eliminar ese jar. En mi caso mysql, Jackson, tarros de aspecto fue dañado mvn spring-boot:run comando 3 veces y me doy cuenta de esto y eliminado los tarros de la carpeta .m2. Ahora el problema se ha resuelto.

 51
Author: alok,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-05 06:15:51

El archivo jar puede estar dañado. Intente eliminar el contenido de la siguiente carpeta:

 C:\Users\[username]\.m2\repository

Luego haga clic con el botón derecho en su proyecto, seleccione Maven, Actualizar proyecto, verifique la Actualización Forzada de Instantáneas/Versiones.

 178
Author: Siva Anand,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-30 01:51:24

El problema principal son los frascos corruptos.

Para encontrar el dañado, debe agregar un Java Exception Breakpoint en la vista de puntos de interrupción de Eclipse, o su IDE preferido, seleccione la clase java.util.zip.ZipException y reinicie la instancia de Tomcat.

Cuando la JVM suspende en ZipException punto de interrupción, debe ir a JarFile.getManifestFromReference() en el seguimiento de la pila, y marque atributo name para ver el nombre del archivo.

Después de eso, debe eliminar el archivo del sistema de archivos y luego hacer clic derecho en su proyecto, seleccione Maven, Actualizar proyecto, comprobar en Forzar actualización de Instantáneas / Versiones.

 100
Author: Matias Sebastiao,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-14 11:22:46

De gsitgithub/find-currupt-jars.txt, el siguiente comando lista todos los archivos jar dañados en el repositorio:

find  /home/me/.m2/repository/ -name "*jar" | xargs -L 1 zip -T | grep error | grep invalid

Puede eliminar los archivos jar dañados y recompilar el proyecto.

Ejemplo de salida:

warning [/cygdrive/J/repo/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar]:  98304 extra bytes at beginning or within zipfile
  (attempting to process anyway)
file #1:  bad zipfile offset (local header sig):  98304
  (attempting to re-compensate)
zip error: Zip file invalid, could not spawn unzip, or wrong unzip (original files unmodified)
 32
Author: Javier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-03 17:26:26

Me gustaría dar mi dar mi práctica.

Use su IDE preferido, tome eclipse por ejemplo aquí:

  1. Encuentre una ubicación apropiada dentro de la pila de excepciones
  2. Establecer el punto de interrupción condicional
  3. Depurar
  4. Imprimirá el tarro dañado antes de la excepción

introduzca la descripción de la imagen aquí

 8
Author: samm,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-08-17 11:27:39

La solución para mí fue ejecutar mvn con -X:

$ mvn package -X

Luego mire hacia atrás a través de la salida hasta que vea el fallo y luego continúe hasta que vea el último archivo jar que mvn intentó procesar:

...
... <<output ommitted>>
...
[DEBUG] Processing JAR /Users/snowch/.m2/repository/org/eclipse/jetty/jetty-server/9.2.15.v20160210/jetty-server-9.2.15.v20160210.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.607 s
[INFO] Finished at: 2017-10-04T14:30:13+01:00
[INFO] Final Memory: 23M/370M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.1.0:shade (default) on project kafka-connect-on-cloud-foundry: 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:3.1.0:shade (default) on project kafka-connect-on-cloud-foundry: Error creating shaded jar: invalid LOC header (bad signature)

Mire el último jar antes de que fallara y elimínelo del repositorio local, es decir,

$ rm -rf /Users/snowch/.m2/repository/org/eclipse/jetty/jetty-server/9.2.15.v20160210/
 4
Author: Chris Snow,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-04 13:36:02

Parece un problema de configuración para el compilador maven en su archivo pom. La versión predeterminada de Java de origen y destino es 1.5, incluso JDK utilizado tiene una versión superior.

Para arreglar, agregue la sección de configuración del complemento del compilador maven con una versión superior de Java, ejemplo:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-compiler-plugin</artifactId>
  <version>3.6.1</version>
  <configuration>
    <source>1.6</source>
    <target>1.6</target>
  </configuration>
</plugin>

Para obtener más información, consulte estos enlaces:

Compilador Maven

Informe de Error

 2
Author: harvyS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-03-25 11:21:15

Me enfrentaba a este problema mientras escuchaba mi ejemplo de weblogic local. Limpiar el repositorio local y construir el oído de nuevo resolvió el problema para mí.

 1
Author: SMT_Dev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-19 10:31:33

La mayoría de las veces esto sucede debido a los zars corruptos actualizando la url del repositorio central maven en pom.archivo xml resuelto mi problema puedes usar esta url https://repo.maven.apache.org/maven2 / pero antes de que eliminar los archivos en .directorio m2 espero que esto ayude

 0
Author: techasutos,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-05 16:06:58

Compile el proyecto con la opción "-e-X" para averiguar el jar dañado y eliminar el jar del repositorio local.

 0
Author: Ajeesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-09-11 10:20:00

Esto puede deberse a muchas razones:

1: Intenta Cambiar tu Web.Versión XML

2: El Frasco que estás tratando de usar puede estar corrupto. Por ejemplo: Use una versión diferente para el frasco de Maven

 0
Author: greencheese,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-03 19:17:19

Más allá de la eliminación .m2 / repository, eliminar aplicación del servidor, ejecutar servidor (sin aplicaciones), detenerlo y agregar aplicación de nuevo. Ahora se supone que funciona. Por alguna razón, solo limpiar las carpetas del servidor de la interfaz no tiene el mismo efecto.

 0
Author: Alex,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-20 20:20:56

Es causada principalmente por maven.Si estás usando IDEA, prueba estos pasos siguientes:

1.use IDEA para ejecutar "maven clean", entonces u verá

 [INFO] Scanning for projects... [WARNING]  [WARNING] Some problems were encountered while building the effective model for com.hisen:BookSystem_V0:war:1.0-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 116, column 15 [WARNING]  [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.

Reemplazar el tarro equivocado

2.use IDEA para ejecutar "maven compile", entonces u verá

[INFO] -------------------------------------------------------------
[ERROR] COMPILATION ERROR : 
[INFO] -------------------------------------------------------------
[ERROR] Failure executing javac, but could not parse the error:
错误: 读取/Users/qinkai/.m2/repository/ch/qos/logback/logback-classic/1.1.1/logback-classic-1.1.1.jar时出错; invalid LOC header (bad signature)
错误: 读取/Users/qinkai/.m2/repository/ch/qos/logback/logback-core/1.1.1/logback-core-1.1.1.jar时出错; invalid LOC header (bad signature)
2 个错误

Resolver el tarro equivocado

Entonces el problema será resuelto.

 0
Author: Qin Kai,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-21 10:23:55

Esta respuesta no es para DevOps/ administradores de sistemas, sino para aquellos que están usando IDE como eclipse y enfrentan un problema invalid LOC header (bad signature).

Puede forzar la actualización de las dependencias maven, de la siguiente manera:

introduzca la descripción de la imagen aquí

introduzca la descripción de la imagen aquí

 0
Author: Vishrant,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-22 04:49:35

"Controlador de LOC no válido (firma incorrecta)"
Esto es probablemente debido a los frascos corruptos que fueron descargados por Maven. Solución rápida, recomiendo hacer una copia de seguridad de la .m2 / repositorio directorio y eliminación .m2 / repositorio directorio, luego realice una reconstrucción o Maven-Update.

 0
Author: Shivdas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-18 08:43:11