如何使用Scala REPL的第三方库?

时间:2013-09-15 12:32:51

标签: scala interpreter read-eval-print-loop

我已下载 Algebird ,我想使用此库在 Scala解释器中尝试一些内容。我该如何实现这一目标?

4 个答案:

答案 0 :(得分:97)

当然,您可以使用scala -cp,并手动管理您的依赖项。但这变得非常繁琐,特别是如果你有多个依赖项。

更灵活的方法是使用sbt来管理您的依赖项。在search.maven.org上搜索要使用的库。例如,Algebird只需searching for algebird即可使用。然后创建一个引用该库的build.sbt,输入目录并输入 sbt console 。它将下载所有依赖项,并在类路径上自动启动包含所有依赖项的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._"

答案 1 :(得分:11)

运行sbt console不会导入使用测试范围声明的库。要在REPL中使用这些库,请使用

启动控制台
sbt test:consoleQuick

但是,您应该知道以这种方式启动控制台会跳过编译测试源。

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

答案 2 :(得分:6)

您可以使用scala的-cp开关将jar保留在类路径上。还有其他可用的开关,例如,-deprecation-unchecked用于打开各种警告。使用scala -X...scala -Y...可以找到更多内容。您可以使用scala -help

找到有关这些开关的更多信息

答案 3 :(得分:2)

这是使用{{3}}(与Scala REPL相对)的答案-但这是一个很棒的工具,值得一提。

  1. 您可以使用一个衬板安装它,例如:
d(P_NW,P_SW)

或在macOS上使用brew:

h

对于scala 2.10,您需要使用oder版本1.0.3:

sudo sh -c '(echo "#!/usr/bin/env sh" && curl -L https://github.com/lihaoyi/Ammonite/releases/download/2.1.2/2.13-2.1.2) > /usr/local/bin/amm && chmod +x /usr/local/bin/amm' && amm
  1. 在终端中运行Ammonite:
brew install ammonite-repl  
  1. 在ivy import中使用以导入您的第3部分库:
sudo sh -c '(echo "#!/usr/bin/env sh" && curl -L https://github.com/lihaoyi/Ammonite/releases/download/1.0.3/2.10-1.0.3) > /usr/local/bin/amm && chmod +x /usr/local/bin/amm' && amm

然后,您可以在Ammonite-REPL中使用您的库:

amm
// Displays
Loading...
Welcome to the Ammonite Repl 2.1.0 (Scala 2.12.11 Java 1.8.0_242)