Ошибка компилятора “не удалось прочитать архив для требуемой библиотеки” - Spring Tool Suite
-
28-10-2019 - |
Вопрос
Я начинаю настраивать свою среду разработки и использую Spring Tool Suite 2.8.1 вместе с m2E 1.01.
Насколько я могу судить, поскольку это проект Maven (мой первый), мой Maven POM диктует (наряду с m2E smarts) конфигурацию сборки моего проекта и зависимости.
Что я хотел бы знать, так это почему моя IDE отображает проблемы сборки Java с надписью "Требуется архив для библиотеки library/path/somejar.jar не может быть прочитан или не является допустимым zip-файлом ", когда я смогу увидеть jars в моем репозитории .m2?
Все ошибки относились к commons-logging: 1.1.1, которые я исключил в своем родительском поме.Это была временная зависимость через spring-context-support: 3.0.5.Я исключил эту библиотеку из своей сборки, и теперь ошибки относятся к библиотеке spring-context-support.
Я приложил скриншот для иллюстрации.
Решение
Действительно, Ides часто кэширует локальный репозиторий (Eclipse делает что -то подобное, и я должен перезапустить Eclipse).
Одно уродливое поведение Maven, с которым вы можете столкнуться, это то, что если вы объявите зависимость, прежде чем фактически установить ее, Maven создаст пустую версию недостающей зависимости (папка с метаданными, но без банки), и вам придется вручную очистить свой репозиторий .m2 Анкет
В -третьих, установленный архив (Jar ...) может быть поврежден, поэтому попробуйте открыть его с помощью любого архивного инструмента (7ZIP ...), чтобы проверить его и удалить всю папку, если архив поврежден.
Другие советы
В моем случае мне пришлось вручную удалить все файлы в .m2\repository
папка, а затем откройте командную строку и запустите mvn -install
командование в моем каталоге проекта.
Я использовал Eclipse в качестве IDE, и у меня была такая же ошибка. Мне пришлось сделать Project-> Maven-> Обновление проекта. Выберите все флажки ниже, кроме «автономного» особенно. Одно «обновление моментальных снимков/выпусков» и нажмите ОК. Чистая сборка снова для проекта снова.
Удалить поврежденные файлы из вашего местного репозитория .m2 и Ctrl+F5 (Обновление Maven Project) в Eclipse/STS. Он загрузит и установит эти файлы.
Это сработало для меня.
- Близкое затмение
- Удалить ./m2/repository
- Откройте Eclipse, он автоматически загрузит все банки
- Если все еще остается проблема, то Щелкните правой кнопкой мыши> Maven> Обновление проекта ...> Проверьте «Обновление сил снимков/выпусков»
Для Гуглеров:
В моем случае у меня случайно вручную добавлен класс Java в путь сборки пока ковырялся в Eclipse.Взглянув на 'Configure Build Path ...> Библиотеки, я удалил класс-виновник, и теперь у меня есть только
- Системная библиотека JRE
- Зависимости Maven
и ни на что не жалуется.
Ниже шаги решили мою проблему.
Перейдите в папку ./m2/repository.
Перейдите в соответствующую папку ошибок архива.
Убедитесь, что любой zip -файл существует.
Удалить папку имени ошибки.
Теперь приходите в проект Eclipse - щелчок правой кнопкой мыши - Maven -> Обновление проекта.
Наверху трюк работает для меня.
В моем случае я попробовал все предлагаемые советы, но ошибка осталась. Я решил измениться с более поздней версией и написал это в pom.xml. После этого все сейчас в порядке.
Я удалил местный репозиторий Maven. Тогда просто правой клик проект -> Maven -> Обновить проект ... выберите все заинтересованные проекты и нажмите ОК.
Удалить Maven Devingdenices с пути сборки
Я столкнулся с этой проблемой. У меня был «архив для необходимых библиотечных библиотечных пружин-бутовых девтоолсов не может быть прочитал или не является действительным zip-файлом», и решение было похоже на то, что:-1- Определите имена зависимостей, у которых есть проблемы (для мая это Spring-Boot- Devtools). 2- Затклятое затмение. 3- Поиск в вашем файле .m2 на этих зависимостях (по имени). 4- Удалить эти папки. 5- Откройте затмение и позвольте Maven снова восстановить ваши зависимости.
ОК, у меня была та же проблема с STS на Mac и решил его, удалив все файлы в папке репозитория и из STS IDE нажмите на проект, а затем Maven -> Обновление проекта. Дайте ему пару минут, чтобы загрузить все зависимости, и проблема решена.
Я сталкиваюсь с той же проблемой. Я удалил местный репозиторий и перезапустил удостоверение личности. Это сработало нормально.
Просто была эта проблема на индиго SR2. Он выскочил после того, как я снял лишнюю банку с пузыря обстановки (путь сборки). Перезагрузка Eclipse не помогла. Добавлено в обратном направлении к пути сборки ... Ошибка ушла. Удалили банку еще раз, и на этот раз меня пощадили от другой жалобы.
Ни одно из приведенных выше решений не помогло моей проблеме. Я решил его, удалив все файлы в папке {ProjectWorkspace}/. В папке Metadata и в {местоположении}/. M2 и позволил Eclipse скачать все снова. Надеюсь, это поможет кому -то, ура!
Когда я получил ошибку, в которой говорилось: «Архив для необходимой библиотеки нельзя прочитать», - я решил ее, удалив рассматриваемые банки с пути сборки проекта, а затем используя «Добавить внешние банки», чтобы добавить их снова (навигация в ту же папку, в которой они были). Использование кнопки «Добавить банки» не сработает, и ошибка все равно будет там. Но использование «добавить внешние банки» сработало.
Это может быть связано с тем, что вы добавили файл Spring-licence.txt в библиотеки веб-приложений.
У меня была похожая проблема, и она решила после удаления этого текстового файла. В библиотеках он ожидает только файла JAR.
Я столкнулся с той же проблемой с моим проектом.
Мой проект не смог найти этот архив: -
C:\Users\rakeshnarang\.m2\repository\org\hibernate\hibernate-core\5.3.7.Final
Я пошел в этот каталог и удалил эту папку.
Вернулся в Eclipse и нажмите Alt + F5, чтобы обновить проект.
Файл JAR был снова загружен, и проблема была решена.
Вы должны попробовать это.
В качестве альтернативы, ниже команды также работали для меня:
mvn -s settings.xml eclipse:clean
mvn -s settings.xml eclipse:eclipse