repl scala interpreter read-eval-print-loop

¿Cómo usar bibliotecas de terceros con Scala REPL?



repl python (3)

He descargado Algebird y quiero probar algunas cosas en el intérprete de Scala usando esta biblioteca. ¿Cómo logro esto?


La ejecución de la sbt console no importará las bibliotecas declaradas con un alcance de prueba. Para usar esas bibliotecas en REPL, inicie la consola con

sbt test:consoleQuick

Sin embargo, debe tener en cuenta que al iniciar la consola de esta manera se salta la compilación de sus fuentes de prueba.

Fuente: http://www.scala-sbt.org/0.13/docs/Howto-Scala.html


Por supuesto, puede usar scala -cp whatever y administrar manualmente sus dependencias. Pero eso se vuelve bastante tedioso, especialmente si tienes múltiples dependencias.

Un enfoque más flexible es usar sbt para administrar sus dependencias. Busque la biblioteca que desea usar en search.maven.org . Algebird, por ejemplo, está disponible simplemente buscando algebird . A continuación, cree un build.sbt que haga referencia a esa biblioteca, ingrese el directorio e ingrese la consola sbt . Descargará todas sus dependencias e iniciará una sesión de consola scala con todas las dependencias automáticamente en la ruta de clases.

Cambiar cosas como la versión scala o la versión de la biblioteca es solo un cambio simple en build.sbt. Para jugar, no necesitas ningún código scala en tu directorio. Un directorio vacío con solo build.sbt funcionará bien.

Aquí hay un build.sbt para usar algebird:

name := "Scala Playground" version := "1.0" scalaVersion := "2.10.2" libraryDependencies += "com.twitter" % "algebird-core" % "0.2.0"

Editar: a menudo, cuando desea jugar con una biblioteca, lo primero que debe hacer es importar los espacios de nombre de la biblioteca. Esto también se puede automatizar en build.sbt agregando la siguiente línea:

initialCommands in console += "import com.twitter.algebird._"


Puede usar el conmutador -cp de -cp para mantener los -cp en el classpath. También hay otros conmutadores disponibles, por ejemplo, -deprecation y -unchecked para activar varias advertencias. Se pueden encontrar muchos más con scala -X... y scala -Y... Puede encontrar más información sobre estos interruptores con scala -help