2012-03-23 16 views
6

Tengo conocimiento casi nulo de Maven/Ivy pero sé que estas tecnologías están detrás de la capacidad de SBT de descargar y administrar bibliotecas automáticamente.¿Cómo configurar un repositorio proxy local para SBT?

Cuando estaba intentando generar un proyecto IntelliJ Idea a partir de SBT, (Idea o el complemento del generador) no ha podido encontrar las bibliotecas en caché almacenadas en el caché Ivy 2 común. He resuelto el problema configurando el proyecto SBT para usar el esquema anterior que almacena las bibliotecas descargadas en el directorio del proyecto. Otro proyecto mío usa una versión antigua de SBT que lo hace de esta manera por defecto. En ambos casos uso el comando clean para eliminar los archivos binarios de la biblioteca antes de hacer una copia de seguridad y update después de descargar todas las bibliotecas nuevamente. Lo que significa que descargo los mismos archivos de la biblioteca muchas veces.

La pregunta es cómo configurar un repositorio local para almacenar en caché las bibliotecas para que la actualización de SBT descargue las bibliotecas de la memoria caché local, si está disponible. Sería bueno utilizar el directorio existente ~/.ivy2/cache para la memoria caché si es posible.

Tiendo a creer que esto es probablemente bastante simple cuando tienes al menos conocimiento básico de Ivy 2.

Respuesta

3

Ivan, esto puede ayudar.

sbt 
> deliver-local 
[info] delivering ivy file to /.../target/scala-2.9.1/ivy-1.0.xml 

A continuación, tendrá que encontrar IntelliJ etapas equivalentes, pero en Eclipse se configura la ruta de compilación de una biblioteca adicional, "IvyDE Gestionado dependencias" que ofrece el IvyDE plugin

1) browse to the target/scala-version/ivy-1.0.xml file 
2) select desired configurations (compile, runtime, test, provided, etc.) 

Ahora tener una representación de hiedra de su configuración sbt.

Esto funciona maravillosamente con una excepción molesta: en "sbt clean", el archivo de configuración de hiedra se va volando y tienes que repetir lo anterior. Eclipse project clean preserva la configuración de ivy, por cierto.

Manténgase informado si este enfoque se puede aplicar a IntelliJ

+0

Gracias, lo comprobaré. – Ivan

Cuestiones relacionadas