Ich erhalte die folgende Ausnahme, wenn ich meine ausführe mvn install
. Ich habe sogar das lokale Repository gelöscht und es erneut ausgeführt, wobei dieselbe Ausnahme aufgetreten ist.
[FEHLER] Fehler beim Ausführen des Ziels org.apache.maven.plugins: maven-shadow-plugin: 2.1: shadow (Standard) für Projektkerne-Batch: Fehler beim Erstellen des schattierten JAR: ungültiger LOC-Header (falsche Signatur) -> [Hilfe 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
quelle
quelle
mvn dependencies validate
... oder so erlaubten ...Antworten:
Sie müssen überprüfen, welches Glas ein Problem darstellt. Es muss beschädigt sein. Löschen Sie das Glas und führen Sie den
mvn spring-boot:run
Befehl erneut aus. Möglicherweise ist mehr als ein Glas beschädigt, sodass Sie jedes Mal, wenn Sie diesen Befehl ausführen müssen, um dieses Glas zu löschen. In meinem Fall war MySQL, Jackson, Aspekt Jarsmvn spring-boot:run
Befehl 3 Mal beschädigt und ich habe dies herausgefunden und die Jars aus dem.m2
Ordner gelöscht . Jetzt ist das Problem behoben.quelle
Die JAR-Datei ist möglicherweise beschädigt. Versuchen Sie, den Inhalt des folgenden Ordners zu entfernen:
Klicken Sie dann mit der rechten Maustaste auf Ihr Projekt, wählen Sie Maven, Projekt aktualisieren und aktivieren Sie die Option Aktualisierung von Snapshots / Releases erzwingen.
quelle
invalid LOC header
in Gradle Build auf etwas stößt , löschen Sie einfach den~/.gradle/caches
Ordner (Linux).Das Hauptproblem sind beschädigte Gläser.
Um den beschädigten zu finden, müssen Sie einen Java-Ausnahme-Haltepunkt in der Haltepunktansicht von Eclipse oder Ihre bevorzugte IDE hinzufügen , die
java.util.zip.ZipException
Klasse auswählen und die Tomcat-Instanz neu starten.Wenn die JVM am
ZipException
Haltepunkt angehalten wird, müssen SieJarFile.getManifestFromReference()
in der Stapelverfolgung nachsehen und das Attribut überprüfenname
, um den Dateinamen anzuzeigen.Danach sollten Sie die Datei aus dem Dateisystem löschen und dann mit der rechten Maustaste auf Ihr Projekt klicken, Maven auswählen, Projekt aktualisieren und die Option Aktualisierung von Snapshots / Releases erzwingen aktivieren.
quelle
In der Datei gsitgithub / find-currupt-jars.txt listet der folgende Befehl alle beschädigten JAR-Dateien im Repository auf:
Sie können die beschädigten JAR-Dateien löschen und das Projekt neu kompilieren.
Beispielausgabe:
quelle
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 Bash auf Ubuntu auf Windows, fyizip -T
für jedes Glas unter ausgeführt (getestet) und filtertrepository
dann, welche Gläser ungültige komprimierte Dateien sind. Haben Siezip
Befehl zur Verfügung?zip -T
auf jedem Glas zu laufen, das unter gespeichert ist.m2/repository
. In Windows können Sie es/cygdrive/C/Users/torno/.m2/repository
wie ich unter Cygwin ( ) ausführen , und ich denke, Sie können es auch mit Bash unter Windows 10 (/mnt/c/Users/torno/.m2/repository
) ausführen . Ich habe nicht untersucht, wie ein gleichwertiges Skript mit PowerShell geschrieben werden kann, und ich denke, dass dies mit einer cmd-Eingabeaufforderung nicht möglich sein sollte.Ich möchte meine Praxis geben.
Verwenden Sie Ihre bevorzugte IDE, nehmen Sie zum Beispiel Eclipse hier:
quelle
Die Lösung für mich war zu laufen
mvn
mit-X
:Schauen Sie dann rückwärts durch die Ausgabe, bis Sie den Fehler sehen, und fahren Sie fort, bis Sie die letzte JAR-Datei sehen, die mvn zu verarbeiten versucht hat:
Schauen Sie sich das letzte Glas an, bevor es fehlgeschlagen ist, und entfernen Sie es aus dem lokalen Repository, d. H.
quelle
Sieht nach einem Konfigurationsproblem für den Maven-Compiler in Ihrer POM-Datei aus. Die Standardversion von Java Source und Target ist 1.5, selbst das verwendete JDK hat eine höhere Version.
Fügen Sie zur Behebung einen Konfigurationsabschnitt für das Maven-Compiler-Plugin mit einer höheren Java-Version hinzu. Beispiel:
Weitere Informationen finden Sie unter folgenden Links:
Maven Compiler
Fehlerbericht
quelle
Diese Antwort ist nicht für DevOps / Systemadministratoren gedacht, sondern für diejenigen, die IDE wie Eclipse verwenden und Probleme haben
invalid LOC header (bad signature)
.Sie können die Aktualisierung der Maven-Abhängigkeiten wie folgt erzwingen:
quelle
Hier ist ein kleiner Detektor in Java geschrieben, einfach kopieren und ausführen :)
quelle
Wir können die Prüfsummenvalidierung in maven mit mindestens zwei Optionen erzwingen:
1. Hinzufügen des Befehls
--strict-checksums
zu unserem Maven-Befehl.2. Hinzufügen der folgenden Konfiguration zu unserer Maven-Einstellungsdatei:
Weitere Details in diesem Beitrag: https://dzone.com/articles/maven-artifact-checksums-what
quelle
Entfernen Sie über das Entfernen von .m2 / repository hinaus die Anwendung vom Server, führen Sie den Server (ohne Anwendungen) aus, stoppen Sie ihn und fügen Sie die Anwendung erneut hinzu. Jetzt soll es funktionieren. Aus irgendeinem Grund hat das Bereinigen von Serverordnern von der Benutzeroberfläche nicht den gleichen Effekt.
quelle
Ich hatte dieses Problem, als ich mein Ohr für meine lokale Weblogic-Instanz bereitstellte. Das Löschen des lokalen Repositorys und das erneute Erstellen des Ohrs lösten das Problem für mich.
quelle