Scala SBT / Maven2 Ошибка в OSX: "Ошибка открытия Zip-файла" -> MissingRequirementError

У меня есть проект, который хорошо работает на Unix-системах ( http://www.github.com/jhclark/ducttape).

Однако, используя SBT 0.11.2 (и несколько других версий SBT), он не будет работать на моем Mac (OSX 10.5). Я получаю следующее загадочное сообщение об ошибке:

$ ~/bin/sbt compile                                       (master*? 20:11)
[info] Loading project definition from /Users/jon/Documents/workspace-    scala/ducttape/project
[info] Set current project to ducttape (in build file:/Users/jon/Documents/workspace-scala/ducttape/)
[info] Compiling 104 Scala sources to /Users/jon/Documents/workspace-scala/ducttape/target/scala-2.9.2/classes...
[error] error while loading <root>, error in opening zip file
[error] {file:/Users/jon/Documents/workspace-scala/ducttape/}default-024416/compile:compile: scala.tools.nsc.MissingRequirementError: object scala not found.
[error] Total time: 2 s, completed May 27, 2012 8:12:09 PM

Это происходит даже после того, как я тщательно вычистил вещи с помощью:

sbt clean clean-files
rm -rf ~/.ivy2 ~/.m2 ~/.sbt

Я подозреваю, что настоящая ошибка происходит в Maven2, который SBT использует для управления зависимостями (см. Также Maven: ошибка при открытии zip-файла при запуске maven).

Тем не менее, я в тупик после нескольких дней. Есть идеи?

3 ответа

У меня были похожие проблемы при попытке использовать старую версию средства запуска sbt-extras с sbt-0.11.3. В моем случае он попытался загрузить файл, который не существовал, и попытался распаковать страницу ошибки 404. Самый последний модуль запуска sbt-extras был исправлен для sbt-0.11.3.

Ваш звучит по-другому, но они могут быть связаны с закрытием scala-tools.org. Если вы можете, я рекомендую обновить до sbt-0.11.3.

Если вам нужно продолжать использовать 0.11.2, вы должны использовать пусковую установку 0.11.3-2, поставить sbt.version=0.11.2 в project/build.propertiesи отключить scalaTools репо в вашем build.sbt, Марк Харра опубликовал информацию в списке рассылки SBT.

Если это не помогает, по какой-то причине вы скачиваете поврежденный .jarоткуда-то

Запустите команду find ~/.ivy2 ~/.m2 ~/.sbt -name "*.jar" -exec unzip -qqt {} \; чтобы найти, какие банки повреждены. Содержимое поврежденной банки может дать вам понять, что происходит не так.

Для завершения у меня была та же проблема, и это был поврежденный файл zip/jar.

Тем не менее, командная строка Дейва проверяет обычные каталоги classpath, где может находиться ваш jar.

Тот, который причинял мне неприятности, был фактически в моих проектах ./lib папка. Я боролся с этим часами, надеюсь, это может помочь кому-то еще.

PS: Большое спасибо, Дэйв!

У меня просто была такая же проблема (на OSX и с Scala 2.10.2), но проблема оказалась не в каком-либо из моих репозиториев менеджера зависимостей, ни с SBT или Scala (как у некоторых людей).

Я поместил JAR в /Library/Java/Home/lib/ext/ по другим причинам, но не сделал его читаемым для группы и всего мира. Только root (это владелец) мог прочитать это. Я подправил разрешения и вуаля. Scala и SBT неожиданно снова работают.

cd /Library/Java/Home/lib/ext
sudo chmod g+r bcprov-jdk15on-1.47.jar
sudo chmod g+a bcprov-jdk15on-1.47.jar
Другие вопросы по тегам