2012-05-28 64 views
5

我有一个在Unix机器上构建的项目(http://www.github.com/jhclark/ducttape)。OSX上的Scala SBT/Maven2错误:“打开Zip文件时出错” - > MissingRequirementError

但是,使用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

SBT使用常春藤依赖管理,而不是Maven的(但你的依赖可能来自一个Maven回购)... – Christian

回答

7

我试图在sbt-0.11.3中使用老版本的sbt-extras启动程序时遇到了类似的问题。就我而言,它试图下载一个不存在的文件,并试图解压404错误页面。最新的sbt-extras发射器has been fixed为sbt-0.11.3。

你的听起来不同,但它们可能是由于the shutdown of scala-tools.org。如果可以,我建议升级到sbt-0.11.3。

如果需要继续使用0.11.2,你应该使用0.11.3-2发射器,把sbt.version=0.11.2project/build.properties,并在您build.sbt禁用scalaTools回购。马克Harrah posted info在SBT邮件列表。

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

运行命令find ~/.ivy2 ~/.m2 ~/.sbt -name "*.jar" -exec unzip -qqt {} \;来查找哪个jar损坏。腐败罐子的内容可能会给你一些线索,看看哪里出了问题。

+0

这个解决方案解决类似的问题在Linux上了。谢谢戴夫! – Gopinath

+0

这个测试解压缩命令修复了我的问题。似乎这种问题是由截断的jar文件引起的。 – hsc

2

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

但是,Dave的命令行检查通常的类路径目录,您的jar可能位于其中。

引起我烦恼的一个事实上是在我的项目./lib文件夹中。我苦苦挣扎了好几个小时,希望这可以帮助别人。 PS:非常感谢Dave!

1

我刚刚遇到了同样的问题(在OSX和Scala 2.10.2上),但问题并不在于我的依赖管理器回收站中,或者与SBT或Scala(如某些人)一样。

由于其他原因,我将JAR放入了/ Library/Java/Home/lib/ext /中,但没有使其成为组和世界可读的。只有root(它是所有者)可以读取它。我调整了权限,瞧。斯卡拉和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