Развертывание проекта Maven throws java.util.zip.ZipException: недопустимый заголовок LOC (плохая подпись)

Я получаю следующее исключение, когда запускаю мою mvn install . Я даже удалил локальный repository и снова побежал за тем же исключением.

[ERROR] Не удалось выполнить цель org.apache.maven.plugins: maven-shade-plugin: 2.1: shade (по умолчанию) для ядра проекта: Ошибка создания заштрихованной банки: недопустимый заголовок LOC (плохая подпись) -> [Справка 1 ]

   org.apache.maven.plugins maven-shade-plugin 2.1  true    package  shade     commons-logging:commons-logging:jar:*     *:*   META-INF/*.SF META-INF/*.DSA META-INF/*.RSA  log4j.xml       META-INF/spring.handlers   META-INF/spring.schemas       

Ошибка:

 [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 в репозитории:

 find /home/me/.m2/repository/ -name "*jar" | xargs -L 1 zip -T | grep error | grep invalid 

Вы можете удалить поврежденные файлы 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, например, затмение:

  1. Найти подходящее место в стеке исключений
  2. Установить условную точку останова
  3. Отладить его
  4. Он будет печатать поврежденную банку перед исключением

введите описание изображения здесь

Решение для меня состояло в том, чтобы запустить mvn с -X :

 $ mvn package -X 

Затем оглянитесь назад через выход, пока не увидите ошибку, а затем продолжайте движение, пока не увидите последний файл jar, который mvn пытался обработать:

 ... ... <> ... [DEBUG] Processing JAR /Users/snowch/.m2/repository/org/eclipse/jetty/jetty-server/9.2.15.v20160210/jetty-server-9.2.15.v20160210.jar [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.607 s [INFO] Finished at: 2017-10-04T14:30:13+01:00 [INFO] Final Memory: 23M/370M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.apache.maven.plugins:maven-shade-plugin:3.1.0:shade (default) on project kafka-connect-on-cloud-foundry: 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:3.1.0:shade (default) on project kafka-connect-on-cloud-foundry: Error creating shaded jar: invalid LOC header (bad signature) 

Посмотрите на последнюю банку, прежде чем она не удалась, и удалите ее из локального репозитория, т. Е.

 $ rm -rf /Users/snowch/.m2/repository/org/eclipse/jetty/jetty-server/9.2.15.v20160210/ 

Похож на проблему конфигурации для maven-компилятора в вашем файле pom. Версия java исходной версии и целевой версии 1.5, даже используемая JDK имеет более высокую версию.

Чтобы исправить, добавьте раздел конфигурации плагина maven miler с более высокой версией java, например:

  org.apache.maven.plugins maven-compiler-plugin 3.6.1  1.6 1.6   

Для получения дополнительной информации проверьте эти ссылки:

компилятор 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, как показано ниже:

введите описание изображения здесь

введите описание изображения здесь

  • Горячее развертывание на JBoss - как мне заставить JBoss «видеть» изменение?
  • Определение версии сборки во время события после сборки
  • Как установить регистр переменной для сохранения между играми в недоступном?
  • Лучший способ развертывания приложения Visual Studio, которое может работать без установки
  • Ошибка при развертывании артефакта в Nexus
  • Объединить msi и exe
  • Как найти полное имя сборки?
  • ASP.NET MVC на IIS6
  • Как развернуть SQL Server Compact Edition 4.0?
  • .war vs .ear file
  • Использование Maven для развертывания
  • Interesting Posts
    Давайте будем гением компьютера.