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