2012-05-28 15 views
5

Tengo un proyecto que se integra bien en cajas Unix (http://www.github.com/jhclark/ducttape).Error Scala SBT/Maven2 en OSX: "Error al abrir archivo Zip" -> MissingRequirementError

Sin embargo, utilizando SBT 0.11.2 (y algunas otras versiones de SBT), no se compilará en mi Mac (OSX 10.5). Me sale el siguiente mensaje de error críptico:

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

Esto ocurre incluso después de limpiar las cosas a fondo con:

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

Sospecho que el error real está sucediendo en Maven2, que SBT utiliza para la gestión de la dependencia (ver también Maven : error in opening zip file when running maven).

Sin embargo, estoy perplejo después de varios días. ¿Algunas ideas?

+0

SBT utiliza la hiedra para la gestión de la dependencia, no maven (pero sus dependencias puede provenir de un acuerdo de recompra experto) ... – Christian

Respuesta

7

Tuve problemas similares al intentar utilizar una versión anterior del iniciador sbt-extras con sbt-0.11.3. En mi caso, intentó descargar un archivo que no existía e intentó descomprimir la página de error 404. El lanzador más reciente de sbt-extras has been fixed para sbt-0.11.3.

El suyo suena diferente, pero pueden deberse al the shutdown of scala-tools.org. Si puede, le recomiendo que actualice a sbt-0.11.3.

Si necesita seguir utilizando 0.11.2, debería utilizar el lanzador 0.11.3-2, puso en sbt.version=0.11.2project/build.properties, y desactivar el repositorio scalaTools en su build.sbt. Marque Harrah posted info en la lista de correo de SBT.

Si esto no ayuda, por alguna razón está descargando .jar corruptos de algún lado.

Ejecute el comando find ~/.ivy2 ~/.m2 ~/.sbt -name "*.jar" -exec unzip -qqt {} \; para encontrar qué jar (s) están dañados. El contenido del contenedor corrupto puede darte una pista sobre lo que está pasando mal.

+0

Esta solución corrige problemas similares en Linux también. Gracias Dave! – Gopinath

+0

Este comando de descompresión de prueba soluciona mi problema. Parece que este tipo de problemas son causados ​​por archivos jar truncados. – hsc

2

Para completar, tuve el mismo problema y era un archivo zip/jar corrupto.

Sin embargo, la línea de comandos de Dave comprueba los directorios de ruta de clases habituales, donde puede estar su jar.

El que me causaba problemas era, de hecho, en mi carpeta de proyectos ./lib. Luché con esto durante horas, espero que esto pueda ayudar a alguien más.

PD: ¡Muchas gracias, Dave!

1

Acabo de tener el mismo problema (en OSX y en Scala 2.10.2), pero el problema no fue en ninguno de mis repositorios de administrador de dependencias, ni con SBT o Scala (como para algunas personas).

Había puesto un JAR en/Library/Java/Home/lib/ext/por otros motivos, pero no lo he podido leer en grupo ni en otros idiomas. Solo root (su propietario) podría leerlo. Ajusté los permisos, y listo. Scala y SBT vuelven a funcionar de repente.

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