2011-11-24 12 views
15
val scalaToolsSnapshots = "Scala-Tools Maven2 Snapshots Repository" at "http://scala-tools.org/repo-snapshots" 
val specs = "org.scala-tools.testing" % "specs_2.9.0-1" % "1.6.8" % "test" 

¿Qué significa esto?¿Qué es el operador de porcentaje de escala (%) y el método para cadenas?

+0

posible duplicado de [¿qué significa str% str en el SBT?] (Http://stackoverflow.com/questions/5267127/what-does-str-str-mean-in-the-sbt) –

Respuesta

15

también se puede simplificar esta declaración utilizando la siguiente:

scalaVersion := "2.9.0-1" 

scalaToolsSnapshots := "Scala-Tools Maven2 Snapshots Repository" at "http://scala-tools.org/repo-snapshots" 

specs := "org.scala-tools.testing" %% "specs" % "1.6.8" % "test" 

%% especificará a sbt utilizar una versión binaria especificaciones que es compatible con tu versión Scala proyecto.

Debería considerar usarlo especialmente si planea actualizar la versión de Scala o si planea publicar una lib en múltiples versiones de scala.

bajo el capó, primera cadena se convierte implícitamente a un método GroupID con %% que convertir siguiente cadena a un GroupArtifactId, la siguiente % crea un ModuleID y el último % agrega un alcance al ModuleID.

17

Eso es sbt (herramienta de compilación simple) DSL que define las dependencias gestionadas del proyecto.

El formato es muy simular a maven: primera línea dice dónde encontrar repositorio, segunda línea define la dependencia como "groupId" % "artifactId" % "version" % "scope"

Para más detalles mirar las sbt wiki page (sección dependencias administradas)

+0

Gracias por el enlace a la página wiki sbt. No vi esto en la guía de introducción – MetaChrome

+0

La palabra clave que me ayudó a entender qué está pasando aquí es DSL. Estaba buscando un operador de cadena '%' en Scala hasta que tropecé aquí. El wiki sbt vinculado anteriormente describe lo que '%' hace [aquí] (http://www.scala-sbt.org/0.13/docs/Library-Dependencies.html#The++key). Específicamente, * "los métodos'% 'crean objetos' ModuleID' a partir de cadenas, luego usted agrega esos 'ModuleID' a' libraryDependencies'. "* – kdbanman

1

Este es de hecho SBT (simple-construir-herramienta).

El método 'at' se define en una cadena y devuelve un Resolver. El método '%' se define en una cadena y devuelve un ModuleID.

Cuestiones relacionadas