Kesalahan Scala SBT / Maven2 di OSX: Kesalahan Membuka File Zip -› MissingRequirementError

Saya memiliki proyek yang dibangun dengan baik di kotak Unix (http://www.github.com/jhclark/ducttape).

Namun, dengan menggunakan SBT 0.11.2 (dan beberapa versi SBT lainnya), ini tidak akan dibuat di Mac saya (OSX 10.5). Saya mendapatkan pesan kesalahan samar berikut:

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

Ini terjadi bahkan setelah saya membersihkan semuanya secara menyeluruh dengan:

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

Saya menduga kesalahan sebenarnya terjadi di Maven2, yang digunakan SBT untuk manajemen ketergantungan (lihat juga Maven : kesalahan dalam membuka file zip saat menjalankan maven).

Namun, saya bingung setelah beberapa hari. Ada ide?


person jhclark    schedule 28.05.2012    source sumber
comment
sbt menggunakan ivy untuk manajemen ketergantungan, bukan maven (tetapi dependensi Anda dapat berasal dari repo maven) ...   -  person Christian    schedule 28.05.2012


Jawaban (3)


Saya mengalami masalah serupa saat mencoba menggunakan peluncur sbt-extras versi lama dengan sbt-0.11.3. Dalam kasus saya, ia mencoba mengunduh file yang tidak ada, dan mencoba mengekstrak halaman kesalahan 404. Peluncur sbt-extras terbaru telah diperbaiki untuk sbt-0.11.3.

Jawaban Anda terdengar berbeda, tetapi mungkin disebabkan oleh penutupan scala-tools.org. Jika bisa, saya sarankan untuk mengupgrade ke sbt-0.11.3.

Jika Anda perlu terus menggunakan 0.11.2, Anda harus menggunakan peluncur 0.11.3-2, masukkan sbt.version=0.11.2 di project/build.properties, dan nonaktifkan repo scalaTools di build.sbt Anda. Mark Harrah memposting info di milis SBT.

Jika ini tidak membantu, karena alasan tertentu Anda mengunduh .jars yang rusak dari suatu tempat.

Jalankan perintah find ~/.ivy2 ~/.m2 ~/.sbt -name "*.jar" -exec unzip -qqt {} \; untuk menemukan toples mana yang rusak. Isi toples yang rusak mungkin memberi Anda petunjuk apa yang salah.

person leedm777    schedule 29.05.2012
comment
Solusi ini juga memperbaiki masalah serupa di Linux. Terima kasih Dave! - person Gopinath; 19.09.2014
comment
Perintah unzip tes ini memperbaiki masalah saya. sepertinya masalah seperti ini disebabkan oleh file jar yang terpotong. - person hsc; 18.12.2017

Sebagai penyelesaiannya, saya memiliki masalah yang sama dan itu adalah file zip/jar yang rusak.

Namun, baris perintah Dave memeriksa direktori classpath biasa, di mana toples Anda berada.

Yang menyebabkan masalah bagi saya sebenarnya ada di folder ./lib proyek saya. Saya berjuang dengan ini selama berjam-jam, semoga ini dapat membantu orang lain.

PS: Terima kasih banyak Dave!

person Pablo Fernandez    schedule 09.04.2013

Saya hanya mengalami masalah yang sama (di OSX, dan dengan Scala 2.10.2), tetapi masalahnya ternyata tidak ada di repo manajer ketergantungan saya, atau dengan SBT atau Scala (seperti bagi sebagian orang).

Saya telah memasukkan JAR ke /Library/Java/Home/lib/ext/ karena alasan lain, tetapi tidak membuatnya dapat dibaca oleh grup dan dunia. Hanya root (pemiliknya) yang bisa membacanya. Saya mengubah izinnya, dan voila. Scala dan SBT tiba-tiba berfungsi kembali.

cd /Library/Java/Home/lib/ext
sudo chmod g+r bcprov-jdk15on-1.47.jar
sudo chmod g+a bcprov-jdk15on-1.47.jar
person danielpcox    schedule 30.08.2013