Ошибка компилятора "для требуемой библиотеки не может быть прочитана" - Spring Набор инструментов
Я начинаю настраивать свою среду разработки и использую Spring Tool Suite 2.8.1 вместе с m2E 1.01.
Насколько я могу судить, так как это проект Maven (мой первый), мой POM Maven диктует (наряду с smarts m2E) конфигурацию и зависимости сборки моего проекта.
Я хотел бы знать, почему в моей среде IDE отображаются проблемы сборки Java, в которых указано "Архив, необходимый для библиотеки library/path/somejar.jar, не может быть прочитан или не является допустимым zip файлом", когда я вижу файлы jar в своем .m2 хранилище?
Все ошибки относились к регистрации общего пользования: 1.1.1, которую я исключил из списка родителей. Это была транзитивная зависимость с помощью Spring-context-support: 3.0.5. Я исключил эту библиотеку из моей сборки, и теперь ошибки относятся к библиотеке поддержки весеннего контекста.
Я приложил скриншот, чтобы проиллюстрировать.
![Markers]()
Ответы
Ответ 1
Действительно, IDE часто кэшируют локальный репозиторий (Eclipse делает что-то подобное, и мне нужно перезапустить Eclipse).
Одно уродливое поведение maven, с которым вы можете столкнуться, состоит в том, что, если вы заявляете зависимость до того, как вы его действительно установили, maven создаст пустую версию отсутствующей зависимости (папку с метаданными, но без jar), и вам придется вручную очистить .m2.
В-третьих, установленный архив (jar...) может быть поврежден, поэтому попробуйте открыть его с помощью любого инструмента архива (7zip...), чтобы проверить его и удалить всю папку, если архив поврежден.
Ответ 2
В моем случае мне пришлось вручную удалить все файлы в папке .m2\repository
, а затем откройте командную строку и запустите команду mvn -install
в моем каталоге проектов.
Ответ 3
Я использовал Eclipse в качестве IDE, и я получал очень ту же ошибку. Мне нужно было выполнить Project- > Maven- > Update Project. Выделите все флажки ниже, кроме "offline" esp. один "Принудительное обновление снимков/выпусков" и нажмите "ОК". Удалил ли проект Clean Build для проекта.
Ответ 4
Удалите поврежденные файлы из локального репозитория .m2 и Ctrl + F5 (Update Maven Project) в Eclipse/STS. Он загрузит и установит эти файлы.
Ответ 5
Это сработало для меня.
- Закрыть затмение
- Удалить./m2/repository
- Откройте Eclipse, он автоматически загрузит все банки
- Если проблема остается, щелкните правой кнопкой мыши проект> Maven> Обновить проект...> Установите флажок "Принудительное обновление снимков/выпусков".
Ответ 6
Для гуглеров:
В моем случае я случайно вручную добавил класс Java в путь сборки, ковыряясь вокруг Eclipse. Обратив внимание на библиотеки "Configure Build Path...", я удалил класс виновника и теперь имеет только
- Системная библиотека JRE
- Зависимости Maven
и ничего не жалуется.
Ответ 7
Приведенные ниже шаги решили мою проблему.
Перейдите в папку. /m2/repository.
Перейдите в соответствующую папку с ошибкой архива.
Убедитесь, что любой zip файл существует.
удалить папку с именем ошибки.
Теперь перейдите в Eclipse Project - щелкните правой кнопкой мыши - Maven → Обновить проект.
Выше уловка работает для меня.
Ответ 8
В моем случае я попробовал все советы, но ошибка осталась. Я решил изменить с помощью более новой версии и написать это в pom.xml. После этого все в порядке.
Ответ 9
Я удалил локальный репозиторий maven.
Затем просто нажмите правой кнопкой мыши проект → Maven → Обновить проект...
Выберите все заинтересованные проекты и нажмите "ОК".
Ответ 10
Это может быть связано с тем, что вы добавили файл spring-licence.txt в свои библиотеки веб-приложений.
У меня была похожая проблема, и она была устранена после удаления этого текстового файла. В библиотеках ожидается только файл jar.
Ответ 11
Удаление зависимостей maven из пути сборки
Ответ 12
Я столкнулся с этой проблемой. У меня был "Архив для требуемой библиотеки spring -boot-devtools не может быть прочитан или не является допустимым ZIP файлом", и решение было таким:
1- Определите имена зависимостей, у которых есть проблемы (возможно, это spring -boot-devtools).
2- закрыть затмение.
3- поиск в вашем файле .m2 в этих зависимостях (по имени).
4- удалите эти папки.
5. Повторно заткните eclipse и позвольте maven снова восстановить ваши зависимости.
Ответ 13
Хорошо, у меня была та же проблема с STS на Mac, и я решил ее, удалив все файлы в папке репозитория, и из среды IDE STS щелкните проект, а затем Maven → Обновить проект. Дайте пару минут, чтобы загрузить все зависимости, и проблема решена.
Ответ 14
Я сталкиваюсь с той же проблемой. Я удалил локальный репозиторий и заново запустил ID. Работало нормально.
Ответ 15
Просто была эта проблема на Indigo SR2. Он появился после того, как я удалил лишнюю банку из пути к классам (путь сборки). Перезапуск Eclipse не помог. Добавил обратно банку к пути сборки... ошибка ушла. Снова сняли банку, и на этот раз я был избавлен от очередной жалобы.
Ответ 16
Ни одно из приведенных выше решений не помогло моей проблеме. Я решил эту проблему, удалив все файлы в папке {projectworkspace}/. Метаданных И в папке {location}/. M2 и позволив eclipse снова загрузить каждую вещь. Надеюсь, это поможет кому-то, ура!
Ответ 17
Когда я получил сообщение о том, что "архив для требуемой библиотеки не может быть прочитан", я решил ее, удалив JARS, о котором идет речь, из пути сборки проекта, а затем с помощью "Добавить внешние файлы JAR" снова добавил их (переход в ту же папку, в которой они были). Использование кнопки "Добавить банки" не сработает, и ошибка все равно будет. Но с помощью "Добавить внешние банки" работал.
Ответ 18
Я столкнулся с той же проблемой с моим проектом.
Мой проект не смог найти этот архив: -
C:\Users\rakeshnarang\.m2\repository\org\hibernate\hibernate-core\5.3.7.Final
Я пошел в этот каталог и удалил эту папку.
Вернулись к затмению и нажмите ALT + F5, чтобы обновить проект.
Файл jar был загружен снова, и проблема была решена.
Вы должны попробовать это.
Ответ 19
Кроме того, ниже команды также помогли мне:
mvn -s settings.xml eclipse:clean
mvn -s settings.xml eclipse:eclipse