如何与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 -help
find更多关于这些开关的信息