【问题标题】:What is the difference of running `scala` and `sbt console`?运行`scala`和`sbt console`有什么区别?
【发布时间】:2014-11-28 16:06:57
【问题描述】:

以这些不同的方式运行 scala shell 有什么区别?

【问题讨论】:

    标签: scala sbt


    【解决方案1】:

    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 将获取它们。

    【讨论】:

      【解决方案2】:

      如果您调用 scala,您将获得安装在操作系统路径上的任何 scala 版本。

      如果您调用 sbt 控制台,您将获得在 sbt 构建 (build.sbt) 中配置的 scala 版本在构建中使用的所有库都已在类路径中

      详情请见this answer

      【讨论】:

        猜你喜欢
        • 2018-02-12
        • 2020-05-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-12-06
        • 2011-12-02
        • 2017-05-29
        相关资源
        最近更新 更多