Ошибка компилятора "архив для требуемой библиотеки не может быть прочитан" - Spring Tool Suite


Я начинаю настраивать свою среду разработки, и я использую Spring Tool Suite 2.8.1 вместе с m2E 1.01.

насколько я могу судить, поскольку это проект Maven (мой первый), мой Maven POM диктует (вместе с m2e smarts) мою конфигурацию сборки проекта и зависимости.

Я хотел бы знать, почему моя IDE отображает проблемы сборки Java, которые читают "архив, необходимый для библиотеки библиотека/путь/somejar.банку не может быть прочитан или не является допустимым zip-файлом", когда я могу видеть банки в моем .репозиторий м2?

все ошибки, относящиеся к commons-logging:1.1.1, которые я исключил в своем родителе-pom. Это была транзистивная зависимость через spring-context-support: 3.0.5. Я исключил эту библиотеку из своей сборки, и теперь ошибки относятся к библиотеке spring-context-support..

Я приложил скриншот для иллюстрации.

большое спасибо

15 64

15 ответов:

действительно IDE часто кэшируют локальный репозиторий (Eclipse делает что-то подобное, и мне нужно перезапустить Eclipse).

одно уродливое поведение maven, с которым вы можете столкнуться, заключается в том, что если вы объявите зависимость перед ее фактической установкой, maven создаст пустую версию отсутствующей зависимости (папка с метаданными, но без jar), и вам придется вручную очистить ее .хранилище м2.

В-третьих, установленный архив (jar...) может быть поврежден, поэтому попробуйте открыть его с помощью любой архивный инструмент (7zip...), чтобы проверить его, и удалить всю папку, если архив поврежден.

в моем случае мне пришлось вручную удалить все файлы , а затем откройте командную строку и выполните команду в моем каталоге проекта.

Я использовал Eclipse в качестве IDE, и я получал очень ту же ошибку. Я должен был сделать проект - >Maven - > обновить проект. Установите все флажки ниже, кроме "offline" esp. один "принудительное обновление снимков / выпусков" и нажмите кнопку ОК. Сделал чистую сборку для проекта снова.

удалить поврежденные файлы с локального .репозиторий м2 и Ctrl+F5 (обновить проект Maven) в Eclipse/STS. Он будет загружать и устанавливать эти файлы.

Для Гуглеров:

в моем случае я случайно вручную добавлен класс Java в путь сборки в то время как ковыряться затмение. Взглянув на " настроить путь сборки...> Библиотеки я удалил класс culprit и теперь есть только

  • системная библиотека JRE
  • Зависимостей Maven

и ничего не жалуюсь.

Это работает для меня.

  1. Закройте Eclipse
  2. удалить ./m2 / repository
  3. откройте Eclipse, он автоматически загрузит все банки
  4. Если проблема все еще остается, щелкните правой кнопкой мыши проект > Maven > обновить проект... > Проверьте "принудительное обновление снимков / релизов"

в моем случае я пробовал все предложенные советы, но ошибка осталась. Я решил изменить с более поздней версией и написать это в pom.XML. После этого все нормально.

Я удалил локальный репозиторий maven. Затем просто щелкните правой кнопкой мыши проект - > Maven - > обновить проект... Выберите все соответствующие проекты и нажмите кнопку ОК.

Это может быть связано с тем, что вы добавили spring-licence.txt-файл для библиотек веб-приложений.

У меня была аналогичная проблема и решена после удаления текстового файла. в библиотеках он будет ожидать только jar-файл.

спасибо, Змееголовы.

удалить Maven dependenices из пути сборки

Я столкнулся с этой проблемой. У меня был "архив для требуемой библиотеки spring-boot-devtools не может быть прочитан или не является допустимым ZIP-файлом", и решение было таким:- 1-Определите имена зависимостей, которые имеют проблемы (для майского случая это spring-boot-devtools). 2 - Закройте Eclipse. 3 - поиск по вашему .m2 файл по этим зависимостям (по имени). 4 - удалить эти папки. 5-снова откройте eclipse и пусть maven снова перестроит ваши зависимости.

Ок, у меня была та же проблема с STS на mac и решил ее, удалив все файлы в папке репозитория и из IDE STS нажмите на проект, а затем Maven -> обновить проект. Дайте ему пару минут, чтобы загрузить все зависимости и проблема решена.

Я сталкиваюсь с той же проблемой. Я удалил локальный репозиторий и перезапустил идентификатор. Это сработало отлично .

просто была эта проблема на Indigo SR2. Он выскочил после того, как я удалил лишнюю банку из пути к классам (путь сборки). Перезапуск Eclipse не помог. Добавлена обратно банку в путь сборки...ошибка ушла. Вынул банку еще раз, и на этот раз меня избавили от очередной жалобы.

ни одно из решений выше не помогло моей проблеме. Я решил его, удалив все файлы в {projectworkspace}/.папка метаданных и в {location}/.папка m2 и пусть eclipse снова загружает каждую вещь. Надеюсь, это кому-то поможет, ура!