Comment utiliser des bibliothèques tierces avec Scala REPL?

J’ai téléchargé Algebird et je veux essayer quelques choses dans l’ interpréteur Scala en utilisant cette bibliothèque. Comment puis-je y arriver?

Bien sûr, vous pouvez utiliser scala -cp et gérer manuellement vos dépendances. Mais cela devient assez fastidieux, surtout si vous avez plusieurs dépendances.

Une approche plus flexible consiste à utiliser sbt pour gérer vos dépendances. Recherchez la bibliothèque que vous souhaitez utiliser sur search.maven.org . Algebird, par exemple, est disponible en recherchant simplement algebird . Ensuite, créez un build.sbt faisant référence à cette bibliothèque, entrez le répertoire et entrez la console sbt . Il télécharge toutes vos dépendances et lance automatiquement une session de console Scala avec toutes les dépendances sur le chemin de classe.

Changer des choses comme la version scala ou la version de la bibliothèque est simplement une simple modification de la build.sbt. Pour jouer, vous n’avez pas besoin de code Scala dans votre répertoire. Un répertoire vide avec seulement le build.sbt fera l’affaire.

Voici un build.sbt pour utiliser algebird:

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

Edit: souvent, lorsque vous voulez jouer avec une bibliothèque, la première chose à faire est d’importer les espaces de noms de la bibliothèque. Cela peut également être automatisé dans le build.sbt en ajoutant la ligne suivante:

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

L’exécution de la sbt console n’importera pas les bibliothèques déclarées avec une étendue de test. Pour utiliser ces bibliothèques dans le REPL, démarrez la console avec

 sbt test:consoleQuick 

Vous devez toutefois savoir que le démarrage de la console de cette façon ignore la compilation de vos sources de test.

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

Vous pouvez utiliser le commutateur -cp de scala pour conserver les fichiers jar sur le chemin de classe. Il existe également d’autres commutateurs, par exemple, -deprecation et -unchecked pour -unchecked divers avertissements. Beaucoup plus à trouver avec scala -X... et scala -Y... Vous pouvez trouver plus d’informations sur ces commutateurs avec scala -help