Я получаю следующее исключение, когда запускаю мою mvn install . Я даже удалил локальный repository и снова побежал за тем же исключением.
[ERROR] Не удалось выполнить цель org.apache.maven.plugins: maven-shade-plugin: 2.1: shade (по умолчанию) для ядра проекта: Ошибка создания заштрихованной банки: недопустимый заголовок LOC (плохая подпись) -> [Справка 1 ]
[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
Вам нужно проверить, какая банда создает проблему. Он должен быть поврежден. Удалите эту банку и запустите mvn spring-boot:run команду еще раз. Может быть, что одна банка повреждена, поэтому каждый раз вам нужно запустить эту команду, чтобы удалить эту банку. В моем случае mysql, jackson, аспектные банки были повреждены mvn spring-boot:run команду 3 раза, и я .m2 это и удалил банки из папки .m2 . Теперь проблема решена.
Файл jar может быть поврежден. Попробуйте удалить содержимое следующей папки:
C:\Users\[username]\.m2\repository
Затем щелкните правой кнопкой мыши ваш проект, выберите Maven, Update Project, установите флажок Force Update of Snapshots / Releases.
Главной проблемой являются поврежденные банки.
Чтобы найти поврежденный, вам нужно добавить точку прерывания Java Exception в представлении Breakpoints для Eclipse или вашей предпочтительной IDE, выбрать class java.util.zip.ZipException и перезапустить экземпляр Tomcat.
Когда JVM приостанавливается в ZipException останова ZipException вы должны перейти в JarFile.getManifestFromReference() в трассировке стека и проверить name атрибута, чтобы увидеть имя файла.
После этого вы должны удалить файл из файловой системы, а затем щелкнуть правой кнопкой мыши свой проект, выбрать Maven, Update Project, проверить Force Update Snapshots / Releases.
Из gsitgithub / find-currupt-jars.txt следующая команда перечисляет все поврежденные файлы jar в репозитории:
Вы можете удалить поврежденные файлы jar и перекомпилировать проект.
Пример вывода:
warning [/cygdrive/J/repo/net/java/dev/jna/jna/4.1.0/jna-4.1.0.jar]: 98304 extra bytes at beginning or within zipfile (attempting to process anyway) file #1: bad zipfile offset (local header sig): 98304 (attempting to re-compensate) zip error: Zip file invalid, could not spawn unzip, or wrong unzip (original files unmodified)
Я хотел бы дать свою практику.
Используйте предпочтительную среду IDE, например, затмение:
Найти подходящее место в стеке исключений
Установить условную точку останова
Отладить его
Он будет печатать поврежденную банку перед исключением
Решение для меня состояло в том, чтобы запустить mvn с -X :
$ mvn package -X
Затем оглянитесь назад через выход, пока не увидите ошибку, а затем продолжайте движение, пока не увидите последний файл jar, который mvn пытался обработать:
... ... <
Посмотрите на последнюю банку, прежде чем она не удалась, и удалите ее из локального репозитория, т. Е.
Похож на проблему конфигурации для maven-компилятора в вашем файле pom. Версия java исходной версии и целевой версии 1.5, даже используемая JDK имеет более высокую версию.
Чтобы исправить, добавьте раздел конфигурации плагина maven miler с более высокой версией java, например:
Для получения дополнительной информации проверьте эти ссылки:
компилятор maven
отчет об ошибке
Я столкнулся с этой проблемой, когда я отдавал свое ухо моему местному веб-журналу. Очистка локального хранилища и создание уха снова решила проблему для меня.
«Недопустимый обработчик LOC (плохая подпись)» Вероятно, это связано с поврежденными банками, которые были загружены Maven. Быстрое исправление, я рекомендую создать резервную копию каталога .m2 / repository и удалить каталог .m2 / repository , а затем выполнить командуrebuild или Maven-Update.
в большинстве случаев это происходит из-за коррумпированных zars, обновляющих URL-адрес центрального репозитория maven в файле pom.xml, решив мою проблему, вы можете использовать этот url https://repo.maven.apache.org/maven2/, но до этого удалите файлы в каталоге .m2 надеюсь, что это поможет
Создайте проект с опцией «-e -X», чтобы узнать поврежденную банку и удалить банку из локального репозитория.
Это может быть вызвано многими причинами:
1: Попробуйте изменить версию Web.XML
2: Jar, который вы пытаетесь использовать, может быть поврежден. Например: используйте другую версию для Jar из Maven
Помимо удаления .m2 / repository, удалите приложение с сервера, запустите сервер (без приложений), остановите его и добавьте приложение еще раз. Теперь он должен работать. По какой-то причине просто очистка папок сервера от интерфейса не имеет такого же эффекта.
В основном это связано с maven.If вы используете IDEA, попробуйте выполнить следующие действия:
1.use IDEA для выполнения «maven clean», тогда u увидит
[INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountered while building the effective model for com.hisen:BookSystem_V0:war:1.0-SNAPSHOT [WARNING] 'build.plugins.plugin.version' for org.apache.maven.plugins:maven-compiler-plugin is missing. @ line 116, column 15 [WARNING] [WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
заменить неправильную банку
2.use IDEA для выполнения «maven compile», тогда u увидит
[INFO] ------------------------------------------------------------- [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] Failure executing javac, but could not parse the error:错误: 读取/Users/qinkai/.m2/repository/ch/qos/logback/logback-classic/1.1.1/logback-classic-1.1.1.jar时出错; invalid LOC header (bad signature)错误: 读取/Users/qinkai/.m2/repository/ch/qos/logback/logback-core/1.1.1/logback-core-1.1.1.jar时出错; invalid LOC header (bad signature) 2 个错误
решить неправильную банку
то проблема будет решена.
Этот ответ не для парней DevOps / системного администратора, а для тех, кто использует IDE, например eclipse, и сталкивается с invalid LOC header (bad signature) .
Вы можете принудительно обновить зависимости maven, как показано ниже: