2011-08-04 17 views
5

De forma predeterminada, Scala Built Tool (SBT) tiene un conjunto de reglas sobre cómo generar URL al buscar dependencias. Por ejemplo, si tengo el siguiente archivo de creación,¿Cómo cambiar las reglas de SBT sobre la generación de URL para repositorios Maven?

// Project settings 
name := "MyProject" 

version := "0.1" 

organization := "com.me" 

scalaVersion := "2.8.1" 

// Dependencies 
libraryDependencies ++= Seq(
    "com.google.guava" %% "guava" % "r09" 
) 

// Repositories 
resolvers += "Maven Central Server" at "http://repo1.maven.org/maven2" 

Entonces SBT intentos para encontrar la guayaba en la siguiente URL,

http://repo1.maven.org/maven2/com/google/guava/guava_2.8.1/r09/guava_2.8.1-r09.pom 

Sin embargo, la biblioteca estoy buscando en este caso ISN' t incluso hecho para Scala, por lo que combinar la versión de Scala simplemente no tiene sentido aquí. ¿Cómo puedo decirle a SBT cuál es el formato para generar URLs para usar con los repositorios de Maven?

EDITAR

Aunque parece que es posible editar el diseño como tal,

Resolver.url("Primary Maven Repository", 
    new URL("http://repo1.maven.org/maven2/"))(Patterns("[organization]/[module]/[module]-[revision].[ext]")) 

la "[módulo]" palabra clave está predefinido para ser el (Identificación del artefacto) _ (versión scala) y la palabra clave "[artefacto]" es solo "hiedra", dejándome de nuevo en el punto uno.

Respuesta

9

Por lo que yo recuerdo "%%" añade la versión Scala y "%" no lo hace. Trate

enlace
libraryDependencies ++= Seq(
    "com.google.guava" % "guava" % "r09" 
) 
+0

Eso parece para ser exactamente eso, aunque sbt v0.10.1 elige ocultar el contenedor en profundidad en ~/.ivy2/cache/com.google.guava/guava/jar, pero eso es un problema diferente. ¡Gracias! – duckworthd

+0

Puedes pedirle a sbt que lo ponga los frascos en ./lib_managed. Solo eche un vistazo a la guía de migración sbt. (Nunca lo usé, así que no sé dónde está) – Jan

+0

Ya lo encontré. Todo lo que se necesita es establecer, "retrieveManaged: = true" – duckworthd

3

Comprobar último párrafo (diseño personalizado) del oficial sbt wiki here.

Básicamente SBT le permite utilizar esta sintaxis:

resolvers += Resolver.url("my-test-repo", url)(Patterns("[organisation]/[module]/[revision]/[artifact].[ext]")) 
+0

muerto ... :( –

+1

@OlivierGirardot gracias! Lo he arreglado para hasta a la fecha de la versión –

+0

@ om-nom-nom me puedes dar un ejemplo de cómo escribir patrones? por ejemplo 'https: // dl.bintray.com/eed3si9n/sbt-plugins/com.eed3si9n/sbt-assembly/scala_2.11/sbt_1.0.0-M4/0.14.3/ivys/ivy.xml' –

Cuestiones relacionadas