【问题标题】:SBT Console in IntellijIntellij 中的 SBT 控制台
【发布时间】:2020-01-16 17:53:34
【问题描述】:

我是 Scala 的初学者。我找不到如何添加 SBT 控制台。 我有 sbt shell,但在 Scala 课程中,我看到它们都有:SBT Shell 和 SBT Console,并使用第二个。我试图在 sbt shell 中编写“控制台”,并在“运行”之后,但它说:

错误:未找到:值运行。 所以我只想以某种方式添加这个 SBT 控制台,不仅可以从 Intellij 中的“运行”按钮运行我的程序。

那么 SBT 呢?真的需要吗?或者我不能将它用于 Scala 吗?

【问题讨论】:

  • 打开 SBT Shell 并输入run

标签: scala intellij-idea


【解决方案1】:

您可能对“Shell”和“Console”通常是同义词感到困惑,但它们实际上与 sbt 有不同的含义。

sbt shell - 是,嗯,当你在交互模式下运行时,sbt 给你的 shell - 即当你从终端运行 sbt 时。这使您可以访问其他令人兴奋的事情,例如运行应用程序(使用run 命令)、检查构建(inspect ...)、运行测试(显然是test)等等。

sbt 控制台 - 是一个交互式 REPL (read-evaluate-perform-loop),它为您提供 scala 作为解释器 - 即您可以输入(或粘贴)一些 scala 代码,它会立即编译和评估 - 输出结果。 Sbt console 也可以从 sbt shell 获得——通过运行console

因此,为了运行您的程序,您有两个选项(除了 IntelliJ“运行”对话框):

  1. 从您的终端执行sbt run
  2. 从终端执行sbt,然后等待 sbt 初始化,然后在 sbt shell 中执行 run

请参阅sbt docs 了解有关运行 sbt 的不同方式的更多详细信息(剧透:还有“批处理”模式,您可以在其中从终端运行 sbt run - 它与 sbt 完全相同,然后run)。

Sbt Reference manual 也可能会有所帮助 - 特别是它涵盖了 sbt console 命令。

那么 SBT 呢?真的需要吗?或者我不能将它用于 Scala 吗?

这不是强制性的——你可以用 maven 运行 scala,它只是一个 bit more involved to configure。但是,如果您允许一些个人意见,我建议将 sbt 与 scala 项目(甚至 Java 项目)一起使用。出于一个简单的原因 - sbt 中的构建定义本质上只是 scala 代码 - 您可以在构建中使用任何语言功能、第三方库甚至自定义代码 - 这有时非常有用。与 maven 相比,我认为这是向前迈出的一大步,因为在 maven 中,您使用 mvn 工具及其插件定义的基于 XML 的“语言”定义构建 - 可定制性要低得多。

不过,gradle 也有这个优势,所以请选择最适合您需求的工具。

【讨论】:

    猜你喜欢
    • 2018-11-11
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-15
    • 2012-09-24
    • 1970-01-01
    • 2019-08-25
    相关资源
    最近更新 更多