Die Bereitstellung von Maven-Projekt wirft java.util.zip.ZipException: invalid LOC header (schlechte Signatur)
Bin ich immer die unten Ausnahme, wenn ich meine mvn install
. Ich habe auch das löschen der lokalen repository und lief immer wieder dieselbe Ausnahme.
[ERROR] Failed to execute goal
org.apache.maven.plugins:maven-shade-plugin:2.1:Farbton (Standard) auf
Projekt-Kerne-batch: Fehler beim erstellen des schattierten Glas: ungültige header-LOC
(schlechte Signatur) -> [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>
Fehler:
[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
Gemacht, ein plugin für dieses problem -> github.com/goxr3plus/CorruptedJarsDetector
Es ist nicht wirklich code in das repo (mit Ausnahme der Klasse, in der README), noch weniger, dass der Maven-plugin. Ich denke, dass ein maven-plugin die beste Lösung wäre, eigentlich - oder nur eine Erweiterung eines der vorhandenen plugins, die erlaubt, etwas zu tun, wie ein
Marco der code für das repository ist die einzige in der Klasse, lol 🙂
Es ist nicht wirklich code in das repo (mit Ausnahme der Klasse, in der README), noch weniger, dass der Maven-plugin. Ich denke, dass ein maven-plugin die beste Lösung wäre, eigentlich - oder nur eine Erweiterung eines der vorhandenen plugins, die erlaubt, etwas zu tun, wie ein
mvn dependencies validate
oder so...Marco der code für das repository ist die einzige in der Klasse, lol 🙂
InformationsquelleAutor Karthick | 2015-08-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie überprüfen, welche jar ist was problem. Es muss zerstört werden. Löschen Sie die jar und führen
mvn spring-boot:run
Befehl erneut aus. Möglicherweise besser, ein Glas beschädigt wurde, so dass jedes mal, wenn Sie benötigen, um führen Sie den Befehl löschen Sie die jar. In meinem Fall mysql, jackson, Aspekt Gläser beschädigt warmvn spring-boot:run
Kommando 3 mal und ich herausfinden, diese gelöscht und die Gläser aus.m2
Ordner. Jetzt das Problem gelöst hat.InformationsquelleAutor alok
Die jar-Datei ist möglicherweise beschädigt. Entfernen Sie den Inhalt der folgenden Ordner:
Dann mit der rechten klicken Sie auf Ihr Projekt, wählen Sie Maven, Projekt Aktualisieren, überprüfen Sie auf Update Erzwingen von Snapshots/Releases.
einfacher trick für mich arbeiten 🙂
sehr schön.. nachdem wir 7 Stunden fand ich die Lösung... ein dickes LOB für Sie der Mensch....
Das funktioniert aber das löschen von gesamten lokalen maven-repository ist nicht die beste option. Löschen Sie einfach die zugehörige jar-Dateien und das ist genug.
Nicht löschen Sie alle Abhängigkeiten, die auf der Oberseite können Sie herausfinden, welche Abhängigkeiten hat schlechte LOC-Header.
InformationsquelleAutor Siva Anand
Das hauptsächlich problem sind beschädigte Gläser.
Zu finden, die beschädigt ist, müssen Sie einen Java-Exception-Breakpoint im Breakpoints-View von Eclipse, oder Ihre bevorzugte IDE, wählen Sie die
java.util.zip.ZipException
Klasse, und starten Sie Tomcat-Instanz implementiert werden.Wenn die JVM suspendiert in
ZipException
Haltepunkt müssen Sie gehen, umJarFile.getManifestFromReference()
in der Stapel-Ablaufverfolgung, und überprüfen Sie das Attributname
zu sehen, die mit dem Namen.Danach sollten Sie die Datei löschen aus dem Datei-system und dann mit der rechten klicken Sie auf Ihr Projekt, wählen Sie Maven, Projekt Aktualisieren, überprüfen Sie auf Update Erzwingen von Snapshots/Releases.
rm -rf .m2 = effektive
Genial debugging-Technik gibt. Rettete mich vor Verschwendung von Bandbreite zum download des gesamten Abhängigkeiten oder Artefakte. Danke.
Tolle Technik !. Konnte ich nicht finden (jar-Datei) Rahmen, aber hier fand es als der Ausdruck ZipFile.diese.name auf ZipFile$ZipFileInputStream.Lesen Sie Rahmen.
Ein einfaches Beispiel dieser beschädigten Gläser: stackoverflow.com/a/46623719/3128926 Dauerte 2 Stunden, um zu verstehen, was das problem ist. Btw, dass nur das zugehörige jar-Dateien sind genug, statt das komplette löschen der lokalen maven cache.
InformationsquelleAutor Matias Sebastiao
Vom gsitgithub/find-currupt-jars.txt der folgende Befehl listet alle beschädigten jar-Dateien in der repository:
Können Sie löschen Sie die beschädigte jar-Dateien, und kompilieren Sie das Projekt neu.
Beispiel-Ausgabe:
sudo find ./repository/ -name "*jar" | sudo xargs -L 1 zip -T | grep error | grep invalid
gibt mirxargs: zip: No such file or directory
. dies ist mithilfe von bash unter ubuntu auf windows, fyiDiese Befehlszeile führt
zip -T
(test) auf jedes Glas unterrepository
, dann filtern die Gläser sind ungültig komprimierte Dateien. Sie habenzip
Befehl zur Verfügung?es scheint, dass in der bash, nicht ich habe die zip installiert. ich habe die Erfahrung gemacht, dass der genaue Befehl, den du gepostet funktioniert wunderbar in cygwin, jedoch. und auch, es funktionierte bei der Suche nach schlechten Gläsern, danke!
Sie sind die besten, MANN!
Das ist eine Super Antwort, vielen Dank
InformationsquelleAutor Javier
Ich würde gerne geben meinem geben, meine Praxis.
Verwenden Sie Ihre bevorzugte IDE, eclipse nehmen für zum Beispiel hier:
InformationsquelleAutor samm
Die Lösung für mich war, laufen
mvn
mit-X
:Dann Blick nach hinten durch den Ausgang, bis Sie sehen das scheitern und die dann halten, bis Sie sehen, das Letzte jar-Datei, mvn versucht zu verarbeiten:
Blick auf das Letzte Glas, bevor er scheiterte und entfernen Sie diese aus dem lokalen repository, d.h.
InformationsquelleAutor Chris Snow
Sieht aus wie problem-Konfiguration für maven-compiler in Ihrem pom-Datei. Standard-version java-Quell-und Ziel-ist 1.5, die auch verwendet JDK hat eine höhere version.
Zu beheben, fügen Sie maven-compiler-plugin-Konfiguration Abschnitt mit einer höheren java-version, Beispiel:
Für weitere Informationen prüfen Sie diesen links:
maven-compiler
bug-report
InformationsquelleAutor harvyS
War ich vor diesem Problem whiel dpeloying meinem Ohr zu meinem lokalen weblogic-Instanz. Löschen des lokalen repository und Gebäude das Ohr wieder behoben das Problem für mich.
InformationsquelleAutor SMT_Dev
Darüber hinaus entfernen .m2/repository, entfernen Sie die Anwendung vom server, führen Sie server (ohne Anwendungen), halten Sie es und fügen Sie die Anwendung erneut. Jetzt sollen es an die Arbeit. Aus irgendeinem Grund nur die Reinigung server-Ordner von der Schnittstelle nicht den gleichen Effekt haben.
InformationsquelleAutor Alex
Diese Antwort ist nicht für DevOps/system-admin, Jungs, aber für die, die mit dem IDE wie eclipse und mit Blick auf
invalid LOC header (bad signature)
Problem.Können Sie erzwingen Sie eine Aktualisierung der maven-Abhängigkeiten, wie folgt:
InformationsquelleAutor Vishrant
Wir können erzwingen, dass die checksum-überprüfung in maven mit mindestens zwei Optionen:
1.Hinzufügen der
--strict-checksums
zu unserem maven-Befehl.2.Hinzufügen die folgende Konfiguration für unsere maven settings Datei:
Mehr details in diesem Beitrag: https://dzone.com/articles/maven-artifact-checksums-what
InformationsquelleAutor SHoko
meisten der Zeit dies geschieht, weil der korrupte zars
Aktualisierung der maven central repository-url, die in pom.xml die Datei ist mein problem gelöst
Sie können diese url
https://repo.maven.apache.org/maven2/
aber vorher die Dateien löschen .m2 Verzeichnis
hoffe, das hilft
InformationsquelleAutor techasutos
Projekt erstellen mit der option "-e -X", um herauszufinden, das beschädigte Glas & entfernen Sie das Glas vom lokalen repository.
InformationsquelleAutor Ajeesh
Dies kann wegen der vielen Gründe:
1: Versuchen Sie Ihr Web.XML Version
2: Das Glas, das Sie versuchen zu verwenden, können beschädigt werden. Für ZB: Verwenden Sie Unterschiedliche Version für die aus dem Maven-Jar -
InformationsquelleAutor greencheese
Es ist vor allem durch maven.Wenn Sie mit der IDEE, versuchen Sie diese
folgende Schritte:
1.IDEE zur Ausführung "maven clean",dann u sehen
ersetzen Sie die falsche jar
2.IDEE zur Ausführung "maven compile",dann u sehen
lösen die falsche jar
dann das problem gelöst werden.
InformationsquelleAutor Qin Kai
"Ungültige LOC-Handler (schlechte Signatur)"
Dies ist wahrscheinlich durch beschädigte Gläser, die heruntergeladen wurden von Maven. Schnelle Lösung, ich empfehle das sichern der .m2/repository Verzeichnis und löschen .m2 /repository - Verzeichnis, führen Sie dann eine neu erstellen oder Maven-Update.
code blocking
für code-und log-und Fehler-Texte und Fett und Kursiv zu markieren, die DingeInformationsquelleAutor Shivdas
Hier ist ein kleiner Detektor in Java geschrieben , einfach kopieren und ausführen 🙂
InformationsquelleAutor GOXR3PLUS