Otrzymuję poniższy wyjątek, gdy uruchamiam mój mvn install
. Usunąłem nawet lokalne repozytorium i uruchomiłem ponownie, uzyskując ten sam wyjątek.
[BŁĄD] Nie udało się wykonać celu org.apache.maven.plugins: maven-shadow-plugin: 2.1: odcień (domyślnie) na partiach rdzeni projektu: Błąd podczas tworzenia cieniowanego pliku jar: nieprawidłowy nagłówek LOC (zły podpis) -> [Pomoc 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>
Błąd:
[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
źródło
źródło
mvn dependencies validate
...Odpowiedzi:
Musisz sprawdzić, który słoik powoduje problem. Musi być uszkodzony. Usuń ten plik jar i
mvn spring-boot:run
ponownie uruchom polecenie. Może być więcej niż jeden plik jar, więc za każdym razem musisz uruchomić to polecenie, aby usunąć ten plik jar. W moim przypadku mysql, jackson, aspekt jars został uszkodzonymvn spring-boot:run
polecenie 3 razy, a ja to rozgryzam i usunąłem pliki jars z.m2
folderu. Teraz problem został rozwiązany.źródło
Plik jar może być uszkodzony. Spróbuj usunąć zawartość następującego folderu:
Następnie kliknij prawym przyciskiem myszy projekt, wybierz Maven, Aktualizuj projekt, sprawdź Wymuś aktualizację migawek / wydań.
źródło
invalid LOC header
w kompilacji Gradle, po prostu usuwasz~/.gradle/caches
folder (Linux).Głównym problemem są uszkodzone słoiki.
Aby znaleźć uszkodzony, musisz dodać punkt przerwania wyjątku Java w widoku punktów przerwania w Eclipse lub preferowane środowisko IDE, wybrać
java.util.zip.ZipException
klasę i ponownie uruchomić instancję Tomcat.Gdy maszyna JVM zawiesza się w punkcie
ZipException
przerwania, należy przejść doJarFile.getManifestFromReference()
śladu stosu i sprawdzić atrybut,name
aby zobaczyć nazwę pliku.Następnie należy usunąć plik z systemu plików, a następnie kliknąć prawym przyciskiem myszy projekt, wybrać Maven, Aktualizuj projekt, sprawdzić Wymuś aktualizację migawek / wydań.
źródło
Z gsitgithub / find-currupt-jars.txt następujące polecenie wyświetla listę wszystkich uszkodzonych plików jar w repozytorium:
Możesz usunąć uszkodzone pliki jar i ponownie skompilować projekt.
Przykładowe dane wyjściowe:
źródło
sudo find ./repository/ -name "*jar" | sudo xargs -L 1 zip -T | grep error | grep invalid
daje mixargs: zip: No such file or directory
. to jest używanie bash na ubuntu wzip -T
(testuje) każdyrepository
plik jar poniżej , a następnie filtruje, które słoiki są nieprawidłowymi skompresowanymi plikami. Czy maszzip
dostępne polecenie?zip -T
każdy słoik przechowywany pod.m2/repository
. W systemie Windows możesz uruchomić go na Cygwin (/cygdrive/C/Users/torno/.m2/repository
), tak jak ja, i myślę, że możesz go również uruchomić za pomocą Bash w systemie Windows 10 (/mnt/c/Users/torno/.m2/repository
). Nie badałem, jak napisać równoważny skrypt w PowerShell i myślę, że nie powinno to być możliwe z podpowiedzią cmd.Chciałbym dać moją praktykę.
Użyj preferowanego IDE, weź na przykład zaćmienie tutaj:
źródło
Rozwiązaniem dla mnie było uruchomienie
mvn
z-X
:Następnie spójrz wstecz na dane wyjściowe, aż zobaczysz błąd, a następnie kontynuuj, aż zobaczysz ostatni plik jar, który mvn próbował przetworzyć:
Spójrz na ostatni jar, zanim się nie powiódł i usuń go z lokalnego repozytorium, tj
źródło
Wygląda na to, że problem z konfiguracją kompilatora maven w twoim pliku pom. Domyślna wersja źródłowa i docelowa java to 1.5, nawet używany JDK ma wyższą wersję.
Aby to naprawić, dodaj sekcję konfiguracji wtyczki kompilatora maven z wyższą wersją java, przykład:
Aby uzyskać więcej informacji, sprawdź te linki:
kompilator maven
Zgłoszenie błędu
źródło
Ta odpowiedź nie jest dla facetów od DevOps / administratorów systemu, ale dla tych, którzy używają IDE jak zaćmienie i stawianie czoła
invalid LOC header (bad signature)
problemy.Możesz wymusić aktualizację zależności maven w następujący sposób:
źródło
Oto mały detektor napisany w Javie, po prostu skopiuj i uruchom :)
źródło
Możemy wymusić weryfikację sumy kontrolnej w maven za pomocą co najmniej dwóch opcji:
1. dodawanie
--strict-checksums
do naszego polecenia maven.2. Dodanie następującej konfiguracji do naszego pliku ustawień Mavena:
Więcej szczegółów w tym poście: https://dzone.com/articles/maven-artifact-checksums-what
źródło
Oprócz usunięcia .m2 / repozytorium, usuń aplikację z serwera, uruchom serwer (bez aplikacji), zatrzymaj go i ponownie dodaj aplikację. Teraz ma działać. Z jakiegoś powodu samo wyczyszczenie folderów serwera z interfejsu nie daje tego samego efektu.
źródło
Miałem do czynienia z tym problemem podczas umieszczania ucha w mojej lokalnej instancji internetowej. Wyczyszczenie lokalnego repozytorium i ponowne zbudowanie ucha rozwiązało problem.
źródło