【发布时间】:2014-11-28 16:06:57
【问题描述】:
以这些不同的方式运行 scala shell 有什么区别?
【问题讨论】:
以这些不同的方式运行 scala shell 有什么区别?
【问题讨论】:
SBT 与 build.sbt 文件定义的特定项目相关联,$ sbt console 将加载与 $ scala 相同的 REPL 环境,但添加了在构建可用于导入。此外,它将使用build.sbt 定义的Scala 版本。
例如:
$ scala
scala> import scalaz._
<console>:7: error: not found: value scalaz
import scalaz._
但是有了这个build.sbt:
scalaVersion := "2.11.4"
libraryDependencies += "org.scalaz" %% "scalaz-core" % "7.1.0"
导入成功:
$ sbt console
...
scala> import scalaz._
import scalaz._
该命令加载 Scala 2.11.4 而不是系统范围的 Scala(或PATH 上的任何版本)。
此外,在构建的 libraryDependencies 添加新项目后调用 sbt console 将获取它们。
【讨论】:
如果您调用 scala,您将获得安装在操作系统路径上的任何 scala 版本。
如果您调用 sbt 控制台,您将获得在 sbt 构建 (build.sbt) 中配置的 scala 版本在构建中使用的所有库都已在类路径中。
详情请见this answer。
【讨论】: