2012-05-28 5 views
5

Ich habe ein Projekt, das gut unter Unix-Boxen (http://www.github.com/jhclark/ducttape) baut.Scala SBT/Maven2 Fehler auf OSX: "Fehler beim Öffnen der Zip-Datei" -> MissingRequirementError

Allerdings, mit SBT 0.11.2 (und ein paar anderen Versionen von SBT), wird es nicht auf meinem Mac (OSX 10.5) bauen. Ich erhalte die folgende kryptische Fehlermeldung:

$ ~/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 

Dies geschieht auch, nachdem ich die Dinge reinigen gründlich mit:

sbt clean clean-files 
rm -rf ~/.ivy2 ~/.m2 ~/.sbt 

Ich vermute, dass der wirkliche Fehler in Maven2 geschieht, die SBT für Abhängigkeitsmanagement verwendet (siehe auch Maven : error in opening zip file when running maven).

Allerdings bin ich nach mehreren Tagen ratlos. Irgendwelche Ideen?

+0

sbt verwendet Efeu für Abhängigkeitsmanagement, nicht maven (aber Ihre Abhängigkeiten können von einem Maven Repo kommen) ... – Christian

Antwort

7

Ich hatte ähnliche Probleme beim Versuch, eine ältere Version des sbt-extras Launcher mit sbt-0.11.3 zu verwenden. In meinem Fall versuchte es, eine Datei herunterzuladen, die nicht existierte, und versuchte, die 404-Fehlerseite zu entpacken. Der neueste sbt-Extras Launcher has been fixed für sbt-0.11.3.

Ihre klingt anders, aber sie können aufgrund der the shutdown of scala-tools.org sein. Wenn Sie können, empfehle ich ein Upgrade auf sbt-0.11.3.

Wenn Sie müssen weiterhin 0.11.2 verwenden, sollten Sie den 0.11.3-2 Launcher verwenden, setzen sbt.version=0.11.2 in project/build.properties, und deaktivieren Sie die scalaTools Repo in Ihrem build.sbt. Mark Harrah posted info auf der SBT-Mailing-Liste.

Wenn das nicht hilft, werden Sie aus irgendeinem Grund beschädigt von irgendwo herunterladen .jar s.

Führen Sie den Befehl find ~/.ivy2 ~/.m2 ~/.sbt -name "*.jar" -exec unzip -qqt {} \; aus, um festzustellen, welche JAR-Dateien beschädigt sind. Der Inhalt des korrupten Glases gibt Ihnen möglicherweise einen Hinweis darauf, was falsch läuft.

+0

Diese Lösung behebt ähnliche Probleme auf Linux zu. Danke, Dave! – Gopinath

+0

Dieser Test entpacken Befehl beheben Sie mein Problem. scheint, dass diese Art von Problemen durch abgeschnittene JAR-Dateien verursacht werden. – hsc

2

Zum Abschluss hatte ich das gleiche Problem und es war eine beschädigte Zip/Jar-Datei.

Die Befehlszeile von Dave überprüft jedoch die üblichen Klassenpfadverzeichnisse, in denen sich Ihr Jar befindet.

Der eine, der mich Probleme verursacht, war tatsächlich in meinen Projekten ./lib Ordner. Ich habe stundenlang damit gekämpft, hoffentlich kann das jemand anderem helfen.

PS: Vielen Dank Dave!

1

Ich hatte gerade das gleiche Problem (auf OSX, und mit Scala 2.10.2), aber das Problem stellte sich heraus, in keinem meiner Dependency Manager Repos, oder mit SBT oder Scala (wie für einige Leute).

Ich hatte ein JAR aus anderen Gründen in/Library/Java/Home/lib/ext/gestellt, aber nicht gruppen- und lesbar gemacht. Nur root (es ist der Besitzer) könnte es lesen. Ich habe die Berechtigungen optimiert und voila. Scala und SBT arbeiten plötzlich wieder.

cd /Library/Java/Home/lib/ext 
sudo chmod g+r bcprov-jdk15on-1.47.jar 
sudo chmod g+a bcprov-jdk15on-1.47.jar 
Verwandte Themen