我已下载 Algebird ,我想使用此库在 Scala解释器中尝试一些内容。我该如何实现这一目标?
答案 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
但是,您应该知道以这种方式启动控制台会跳过编译测试源。
答案 2 :(得分:6)
您可以使用scala的-cp
开关将jar保留在类路径上。还有其他可用的开关,例如,-deprecation
和-unchecked
用于打开各种警告。使用scala -X...
和scala -Y...
可以找到更多内容。您可以使用scala -help
答案 3 :(得分:2)
这是使用{{3}}(与Scala REPL相对)的答案-但这是一个很棒的工具,值得一提。
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
brew install ammonite-repl
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)