如何与Scala REPL一起使用第三方库?

我已经下载了Algebird ,我想在Scala解释器中使用这个库来尝试一些东西。 我如何做到这一点?

当然,你可以使用scala -cp来手动pipe理你的依赖关系。 但是这会变得非常单调乏味,特别是如果你有多个依赖。

更灵活的方法是使用sbt来pipe理你的依赖关系。 search您要在search.maven.org上使用的图书馆。 例如Algebird只需searchalgebird 。 然后创build一个build.sbt引用该库,进入目录并进入控制台 。 它将下载所有的依赖关系,并自动在类path上启动一个包含所有依赖的scala控制台会话。

改变像scala版本或库版本的东西只是在build.sbt中的一个简单的改变。 玩你在你的目录中不需要任何scala代码。 一个只有build.sbt的空目录就行了。

这是一个使用algebird的build.sbt:

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

编辑:通常当你想玩一个图书馆,首先你要做的是导入图书馆的命名空间。 这也可以在build.sbt中自动添加以下行:

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

运行sbt console不会导入使用testing范围声明的库。 要在REPL中使用这些库,请使用以下命令启动控制台

 sbt test:consoleQuick 

但是,您应该意识到,以这种方式启动控制台将跳过编译testing源。

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

您可以使用scala的-cp开关将jar保留在classpath中。 还有其他交换机可用,例如, -deprecation-unchecked用于打开各种警告。 还有更多与scala -X...scala -Y...一起被发现。 你可以用scala -helpfind更多关于这些开关的信息

    Interesting Posts