Implantando o projeto Maven lança java.util.zip.ZipException: header LOC inválido (assinatura incorreta)

Eu estou recebendo a exceção abaixo quando eu executo o meu mvn install . Eu até deletei o repository local e corri novamente recebendo a mesma exceção.

[ERRO] Falha ao executar meta org.apache.maven.plugins: maven-shade-plugin: 2.1: sombra (padrão) no projeto colors-lote: Erro ao criar o flask sombreado: header LOC inválido (assinatura incorreta) -> [Ajuda 1 ]

   org.apache.maven.plugins maven-shade-plugin 2.1  true    package  shade     commons-logging:commons-logging:jar:*     *:*   META-INF/*.SF META-INF/*.DSA META-INF/*.RSA  log4j.xml       META-INF/spring.handlers   META-INF/spring.schemas       

Erro:

 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:2.1:shade (default) on project colors-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 colors-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 

Você precisa verificar qual jarro está dando problema. Deve estar corrompido. Exclua esse jar e execute mvn spring-boot:run comando novamente. Pode ser mais do que um flask corrompido, então toda vez que você precisar executar esse comando para excluir esse jar. No meu caso, mysql, jackson, jars aspect foi corrompido mvn spring-boot:run comando 3 vezes e eu descobri isso e deletei os jars da pasta .m2 . Agora o problema foi resolvido.

O arquivo jar pode estar corrompido. Tente remover o conteúdo da seguinte pasta:

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

Em seguida, clique com o botão direito do mouse em seu projeto, selecione Maven, Update Project, verifique Force Update of Snapshots / Releases.

O problema principal são os flasks corrompidos.

Para encontrar o corrompido, você precisa adicionar um ponto de interrupção de exceção Java na visão de pontos de interrupção do Eclipse, ou seu IDE preferido, selecionar a class java.util.zip.ZipException e reiniciar a instância do Tomcat.

Quando a JVM é ZipException no ponto de interrupção ZipException você deve ir para JarFile.getManifestFromReference() no rastreio de pilha e verificar o name atributo para ver o nome do arquivo.

Depois disso, você deve excluir o arquivo do sistema de arquivos e, em seguida, clicar com o botão direito do mouse em seu projeto, selecionar Maven, Update Project, verificar Force Update of Snapshots / Releases.

De gsitgithub / find-currupt-jars.txt , o seguinte comando lista todos os arquivos jar corrompidos no repository:

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

Você pode excluir os arquivos jar corrompidos e recompilar o projeto.

Exemplo de saída:

 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) 

Eu gostaria de dar a minha prática.

Use o seu IDE preferido, faça o eclipse para por exemplo aqui:

  1. Encontre um local apropriado dentro da pilha de exceções
  2. Definir ponto de interrupção condicional
  3. Depurar
  4. Ele irá imprimir o jar corrompido antes da exceção

insira a descrição da imagem aqui

A solução para mim foi rodar o mvn com -X :

 $ mvn package -X 

Em seguida, olhe para trás na saída até ver a falha e continue até ver o último arquivo jar que o mvn tentou processar:

 ... ... < > ... [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) 

Veja o último jar antes de falhar e remova-o do repository local, ou seja,

 $ rm -rf /Users/snowch/.m2/repository/org/eclipse/jetty/jetty-server/9.2.15.v20160210/ 

Parece problema de configuração para o compilador maven no seu arquivo pom. A origem e o destino java da versão padrão são 1.5, até o JDK usado tem a versão mais alta.

Para corrigir, adicione a seção de configuração do plugin do compilador maven com a versão java superior, por exemplo:

  org.apache.maven.plugins maven-compiler-plugin 3.6.1  1.6 1.6   

Para mais informações, consulte estes links:

compilador maven

relatório de erro

Eu estava enfrentando essa questão, mostrando meu ouvido para minha instância weblogic local. Limpar o repository local e construir o ouvido novamente resolveu o problema para mim.

“Manipulador de LOC inválido (assinatura incorreta)”
Isto é provavelmente devido a jars corrompidos que foram baixados pelo Maven. Correção rápida, eu recomendo fazer o backup do diretório .m2 / repository e excluir o diretório .m2 / repository , depois realizar uma reconstrução ou atualização do Maven.

na maioria das vezes isso acontece por causa dos zars corruptos atualizando o url do repository central maven no arquivo pom.xml resolvido meu problema você pode usar esta url https://repo.maven.apache.org/maven2/ mas antes disso deletar os arquivos no diretório .m2 espero que isso ajude

Construa o projeto com a opção “-e -X” para descobrir o jar corrompido e remover o jar do repository local.

Isto pode ser devido a muitas razões:

1: tente alterar sua versão Web.XML

2: O Jar que você está tentando usar pode estar corrompido. Por exemplo: Use uma versão diferente para o pote do Maven

Além de remover .m2 / repository, remova o aplicativo do servidor, execute o servidor (sem aplicativos), pare-o e adicione o aplicativo novamente. Agora é suposto que funcione. Por alguma razão, apenas limpar as pastas do servidor da interface não tem o mesmo efeito.

É principalmente causada pelo maven.Se você estiver usando o IDEA, tente estas etapas a seguir:

1. use IDEA para executar “maven clean”, então vc vai 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. 

replace o jarro errado

2. use IDEA para executar “maven compile”, então vc 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 个错误 

resolva o jarro errado

então o problema será resolvido.

Esta resposta não é para usuários do DevOps / admin do sistema, mas para eles que estão usando IDE como eclipse e enfrentando problemas invalid LOC header (bad signature) .

Você pode forçar a atualização das dependencies do maven, da seguinte maneira:

insira a descrição da imagem aqui

insira a descrição da imagem aqui