Saya mendapatkan pengecualian di bawah ini ketika saya menjalankan mvn install
. Saya bahkan telah menghapus repositori lokal dan berlari lagi mendapatkan pengecualian yang sama.
[GALAT] Gagal menjalankan sasaran org.apache.maven.plugins: maven-shade-plugin: 2.1: naungan (default) pada inti-kumpulan proyek: Kesalahan saat membuat tabung berarsir: header LOC yang tidak valid (tanda tangan buruk) -> [Bantuan 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>
Kesalahan:
[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
sumber
sumber
mvn dependencies validate
...Jawaban:
Anda perlu memeriksa stoples mana yang memberi masalah. Itu harus rusak. Hapus stoples itu dan jalankan
mvn spring-boot:run
perintah lagi. Mungkin lebih dari satu jar rusak sehingga setiap kali Anda perlu menjalankan perintah itu untuk menghapus jar itu. Dalam kasus saya mysql, jackson, guci aspek rusakmvn spring-boot:run
perintah 3 kali dan saya mencari tahu ini dan menghapus guci dari.m2
folder. Sekarang masalah telah teratasi.sumber
File jar mungkin rusak. Coba hapus konten folder berikut:
Kemudian klik kanan proyek Anda, pilih Maven, Perbarui Proyek, periksa Force Update of Snapshots / Rilis.
sumber
invalid LOC header
di Gradle build, Anda cukup menghapus~/.gradle/caches
folder (Linux).Masalah utamanya adalah toples yang rusak.
Untuk menemukan yang rusak, Anda perlu menambahkan Java Exception Breakpoint di Breakpoints View of Eclipse, atau IDE pilihan Anda, pilih
java.util.zip.ZipException
kelasnya, dan mulai kembali instance Tomcat.Ketika JVM ditangguhkan di
ZipException
breakpoint Anda harus pergi keJarFile.getManifestFromReference()
dalam jejak tumpukan, dan periksa atributname
untuk melihat nama file.Setelah itu, Anda harus menghapus file dari sistem file dan kemudian klik kanan proyek Anda, pilih Maven, Perbarui Proyek, periksa Force Update dari Snapshots / Rilis.
sumber
Dari gsitgithub / find-currupt-jars.txt , perintah berikut mencantumkan semua file jar yang rusak di repositori:
Anda dapat menghapus file jar yang rusak, dan mengkompilasi ulang proyek.
Contoh output:
sumber
sudo find ./repository/ -name "*jar" | sudo xargs -L 1 zip -T | grep error | grep invalid
memberi sayaxargs: zip: No such file or directory
. ini menggunakan bash di ubuntu di windows, fyizip -T
(menguji) pada setiap toples di bawahrepository
, lalu menyaring guci mana yang merupakan file terkompresi yang tidak valid. Apakah Anda memilikizip
perintah?zip -T
setiap stoples yang disimpan di bawah.m2/repository
. Di Windows, Anda dapat menjalankannya di Cygwin (/cygdrive/C/Users/torno/.m2/repository
) seperti yang saya lakukan, dan saya pikir Anda juga dapat menjalankannya dengan Bash di Windows 10 (/mnt/c/Users/torno/.m2/repository
). Saya tidak menyelidiki bagaimana menulis skrip yang setara dengan PowerShell, dan saya pikir itu tidak mungkin dengan prompt cmd.Saya ingin memberikan latihan saya.
Gunakan IDE pilihan Anda, ambil gerhana misalnya di sini:
sumber
Solusi bagi saya adalah menjalankannya
mvn
dengan-X
:Kemudian lihat ke belakang melalui output sampai Anda melihat kegagalan dan kemudian terus sampai Anda melihat file jar terakhir yang mencoba diproses oleh mvn:
Lihatlah toples terakhir sebelum gagal dan lepaskan itu dari repositori lokal, mis
sumber
Sepertinya masalah konfigurasi untuk maven compiler di file pom Anda. Sumber dan target java versi default adalah 1.5, bahkan JDK yang digunakan memiliki versi lebih tinggi.
Untuk memperbaikinya, tambahkan bagian konfigurasi plugin compiler maven dengan versi java yang lebih tinggi, contoh:
Untuk info lebih lanjut, periksa tautan ini:
kompiler pakar
laporan bug
sumber
Jawaban ini bukan untuk DevOps / admin sistem, tetapi bagi mereka yang menggunakan IDE seperti gerhana dan
invalid LOC header (bad signature)
masalah yang dihadapi .Anda dapat memaksa memperbarui dependensi pakar, sebagai berikut:
sumber
Berikut ini adalah detektor kecil yang ditulis dalam Java, cukup salin dan jalankan :)
sumber
Kami dapat memaksa validasi checksum dalam maven dengan setidaknya dua opsi:
1. Menambahkan
--strict-checksums
perintah maven kami.2. Menambahkan konfigurasi berikut ke file pengaturan pakar kami:
Lebih detail dalam posting ini: https://dzone.com/articles/maven-artifact-checksums-what
sumber
Selain menghapus .m2 / repositori, hapus aplikasi dari server, jalankan server (tanpa aplikasi), hentikan dan tambahkan aplikasi lagi. Sekarang seharusnya berfungsi. Untuk beberapa alasan hanya membersihkan folder server dari antarmuka tidak memiliki efek yang sama.
sumber
Saya menghadapi masalah ini ketika menggunakan telinga saya untuk contoh weblogic lokal saya. Membersihkan repositori lokal dan membuat telinga kembali menyelesaikan masalah untuk saya.
sumber