5

我有一个在 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

我怀疑真正的错误发生在 SBT 用于依赖管理的 Maven2 中(另请参阅Maven:运行 maven 时打开 zip 文件时出错)。

然而,几天后我被难住了。有任何想法吗?

4

3 回答 3

8

当我尝试将旧版本的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你的 . Mark Harrah在 SBT 邮件列表上发布了信息。project/build.propertiesscalaToolsbuild.sbt

如果这没有帮助,由于某种原因,您正在.jar从某个地方下载损坏的 s。

运行命令find ~/.ivy2 ~/.m2 ~/.sbt -name "*.jar" -exec unzip -qqt {} \;以查找哪些 jar(s) 已损坏。损坏的 jar 中的内容可能会为您提供有关问题所在的线索。

于 2012-05-29T14:23:55.940 回答
2

为了完成,我遇到了同样的问题,它是一个损坏的 zip/jar 文件。

但是,Dave 的命令行会检查您的 jar 可能所在的常用类路径目录。

给我带来麻烦的实际上是在我的项目./lib文件夹中。我为此苦苦挣扎了几个小时,希望这对其他人有帮助。

PS:非常感谢戴夫!

于 2013-04-09T16:53:03.257 回答
1

我刚刚遇到了同样的问题(在 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
于 2013-08-30T18:57:41.113 回答