我有一个在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 : error in opening zip file when running maven)。
然而,几天后我才难过。有什么想法吗?
答案 0 :(得分:7)
尝试将旧版sbt-extras启动器与sbt-0.11.3一起使用时,我遇到了类似的问题。在我的例子中,它试图下载一个不存在的文件,并试图解压缩404错误页面。 sbt-0.11.3的最新sbt-extras发射器has been fixed。
你的听起来不一样,但可能是由于the shutdown of 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
个回复{1}}。 Mark Harrah posted info在SBT邮件列表上。
如果这没有帮助,由于某种原因你从某个地方下载了损坏的.jar
。
运行命令find ~/.ivy2 ~/.m2 ~/.sbt -name "*.jar" -exec unzip -qqt {} \;
以查找哪些jar已损坏。腐败罐子的内容可能会给你一个关于出了什么问题的线索。
答案 1 :(得分:2)
为了完成,我遇到了同样的问题,它是一个损坏的zip / jar文件。
但是,Dave的命令行会检查通常的类路径目录,你的jar可能就在那里。
导致我麻烦的那个实际上是在我的项目./lib
文件夹中。我挣扎了几个小时,希望这可以帮助别人。
答案 2 :(得分:1)
我遇到了同样的问题(在OSX和Scala 2.10.2上),但问题不在于我的任何依赖管理器回购,或者是SBT或Scala(对于某些人来说)。 / p>
由于其他原因,我将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