2012-05-28 63 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