Estou recebendo a exceção abaixo quando executo o meu mvn install
. Eu até apaguei o repositório local e executei novamente obtendo a mesma exceção.
[ERRO] Falha ao executar a meta org.apache.maven.plugins: maven-shade-plugin: 2.1: shade (padrão) no lote de núcleos do projeto: Erro ao criar frasco sombreado: cabeçalho sombreado: cabeçalho LOC inválido (assinatura incorreta) -> [Ajuda 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>
Erro:
[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
fonte
fonte
mvn dependencies validate
ou assim ...Respostas:
Você precisa verificar qual jar está dando problema. Ele deve estar corrompido. Exclua esse jar e execute o
mvn spring-boot:run
comando novamente. Pode haver mais que um jar foi corrompido, portanto, toda vez que você precisar executar esse comando para excluir esse jar. No meu caso, mysql, jackson, jars de aspecto foi corrompidomvn spring-boot:run
3 vezes e eu descobri isso e apaguei os jars da.m2
pasta. Agora o problema foi resolvido.fonte
O arquivo jar pode estar corrompido. Tente remover o conteúdo da seguinte pasta:
Em seguida, clique com o botão direito do mouse no seu projeto, selecione Maven, Atualizar Projeto, verifique Forçar Atualização de Instantâneos / Liberações.
fonte
invalid LOC header
no Gradle build, você simplesmente exclui a~/.gradle/caches
pasta (Linux).O principal problema são os frascos corrompidos.
Para localizar o corrompido, você precisa adicionar um ponto de interrupção de exceção Java na exibição de pontos de interrupção do Eclipse ou seu IDE preferido, selecionar a
java.util.zip.ZipException
classe e reiniciar a instância do Tomcat.Quando a JVM é suspensa no
ZipException
ponto de interrupção, você deve acessarJarFile.getManifestFromReference()
o rastreio da pilha e verificar o atributoname
para ver o nome do arquivo.Depois disso, você deve excluir o arquivo do sistema de arquivos e clicar com o botão direito do mouse em seu projeto, selecionar Maven, Atualizar projeto, verificar Forçar atualização de snapshots / liberações.
fonte
No gsitgithub / find-currupt-jars.txt , o comando a seguir lista todos os arquivos jar corrompidos no repositório:
Você pode excluir os arquivos jar corrompidos e recompilar o projeto.
Exemplo de saída:
fonte
sudo find ./repository/ -name "*jar" | sudo xargs -L 1 zip -T | grep error | grep invalid
me dáxargs: zip: No such file or directory
. isso está usando o bash no ubuntu no windows, fyizip -T
(teste) em cada jar abaixo erepository
, em seguida, filtra quais jars são arquivos compactados inválidos. Você temzip
comando disponível?zip -T
em cada jar armazenado em.m2/repository
. No Windows, você pode executá-lo no Cygwin (/cygdrive/C/Users/torno/.m2/repository
) como eu fiz e acho que você também pode executá-lo com o Bash no Windows 10 (/mnt/c/Users/torno/.m2/repository
). Não investiguei como escrever um script equivalente no PowerShell e acho que não deve ser possível com um prompt de cmd.Eu gostaria de dar minha prática.
Use seu IDE preferido, use o eclipse por exemplo aqui:
fonte
A solução para mim foi executar
mvn
com-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:
Veja o último jar antes que ele falhe e remova-o do repositório local, ou seja,
fonte
Parece um problema de configuração para o compilador maven em seu arquivo pom. A origem e o destino java da versão padrão é 1.5, mesmo o JDK usado possui uma versão superior.
Para corrigir, adicione a seção de configuração do plug-in do compilador maven com versão java superior, exemplo:
Para mais informações, verifique estes links:
compilador maven
relatório de erro
fonte
Esta resposta não é para os funcionários do DevOps / administrador do sistema, mas para aqueles que usam o IDE como eclipse e enfrentam
invalid LOC header (bad signature)
problemas.Você pode forçar a atualização das dependências do maven, da seguinte maneira:
fonte
Aqui está um pequeno detector escrito em Java, basta copiar e executar :)
fonte
Podemos forçar a validação da soma de verificação no maven com pelo menos duas opções:
1.Adicionando
--strict-checksums
ao nosso comando maven.2.Adicionando a seguinte configuração ao nosso arquivo de configurações do maven:
Mais detalhes neste post: https://dzone.com/articles/maven-artifact-checksums-what
fonte
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 funcionar. Por alguma razão, apenas limpar as pastas do servidor da interface não tem o mesmo efeito.
fonte
Eu estava enfrentando esse problema ao implantar meu ouvido na minha instância do weblogic local. Limpar o repositório local e criar o ouvido novamente resolveu o problema para mim.
fonte