【问题标题】:How to build Scala applications in Sublime Text 3?如何在 Sublime Text 3 中构建 Scala 应用程序?
【发布时间】:2014-06-15 13:20:16
【问题描述】:

我希望能够在 Mac 10.9.3 上的 Sublime Text 3 中构建 Scala 应用程序。我安装了 Scala 2.11.1 和 sbt 0.13.5,它们都工作正常。我是用自制软件安装的。

但是,我似乎找不到如何为 Scala 项目创建构建系统。比如这个不行:

{
    "cmd": ["sbt", "test"],
    "selector": "source.scala",
    "working_dir": "${project_path}"
}

我也找到了几个不同的,但它们也对我不起作用。你的想法?

更新

[Errno 2] No such file or directory: 'sbt'
[cmd: ['sbt', 'test']]
[dir: /Users/alex/Documents/projects/scala/dir1]
[path: /usr/bin:/bin:/usr/sbin:/sbin]
[Finished]

更新2:

{
    "cmd": ["/usr/local/bin/sbt", "test"],
    "selector": "source.scala",
    "working_dir": "${project_path}"
}

一个应用程序:

class MainTest extends App {
  println("Hellowa!")     
}

输出:

 [0m[[0minfo[0m] [0mSet current project to scala (in build file:/Users/alex/Documents/projects/scala/)[0m
[0m[[0minfo[0m] [0mCompiling 1 Scala source to /Users/alex/Documents/projects/scala/target/scala-2.10/classes...[0m
[0m[[32msuccess[0m] [0mTotal time: 4 s, completed Jun 16, 2014 4:51:38 PM[0m
[Finished in 7.2s]

【问题讨论】:

  • 你说“他们不工作”是什么意思?您是否收到任何错误消息,如果有,它们是什么?此命令是否可以从终端工作?如果您希望有人帮助您,您需要提供更多信息...
  • @MattDMo,我稍后会发布它们。
  • @MattDMo,从终端运行时,sbt 本身可以正常工作。

标签: scala sbt sublimetext3


【解决方案1】:

Homebrew 在/usr/local/bin 中安装可执行文件,但您现在提供的错误文本显示该目录不在您的路径中。

有两种方法可以解决它:

1) 将"cmd": ["sbt", "test"], 更改为"cmd": ["/usr/local/bin/sbt", "test"],

2) 将/usr/local/bin 添加到您的PATH 环境变量中。请注意,您需要以这样的方式执行此操作,以便像 Sublime Text 这样的 GUI 应用程序注意到更改;参见例如Setting environment variables in OS X?了解详情

【讨论】:

  • 正如我所说,我可以从终端运行“sbt”,它运行良好。
  • $ which sbt /usr/local/bin/sbt
  • 仅仅因为你的 shell 知道 sbt 在哪里并不意味着像 Sublime 这样的 GUI 应用程序知道。您认为在任何地方都有一个相同的 PATH 的假设是错误的。
  • 编译良好,但没有打印“Hellowa”。
  • 您需要run 而不是test。后者什么都不做,因为你没有定义任何测试。
【解决方案2】:

SublimeSBT 那是 “用于 Sublime Text 2 和 Sublime Text 3 的 Scala SBT 构建工具集成。” 是一个解决方案吗?

【讨论】:

  • 我为什么要使用那个复杂的第三方解决方案,而不是仅仅创建我自己的构建系统,这样更容易?我不喜欢图书馆,我喜欢简单。
  • 你不会因为你说“我不喜欢图书馆,我喜欢简单” :)
  • 不过我想我会的。
  • 一个崇高的构建工具将运行一个命令然后退出。当你不关闭它时,Sbt 效果最好。初始化需要一些时间,并且会从 JIT 中受益。这就是为什么使用 SublimeSbt 会更好。
【解决方案3】:

你为什么不呢 :D 我使用 SublimeSBT 已经有一段时间了,唯一的复杂性是调用 cmd+shift+p 后跟 sbt start continuous testing。我建议你在烘焙自己的构建系统之前尝试一下 SBTSublime。

【讨论】:

  • 为什么不在 Scala.sublime-build 文件中添加一行呢?
  • 当然,但这有点像是圣诞节与复活节的讨论,不是吗?我的建议是尝试 SublimeSBT,因为你可以让它在几秒钟内运行,并在相同的时间内删除,但如果你选择走自己的路,它对你有用——甚至更好。
【解决方案4】:

我个人使用支持 SBT 的 SublimeREPL。 SublimeREPL 允许您从 Sublime 启动 SBT。这避免了我下载另一个包,因为我已经将 SublimeSBT 用于 python。我想要一个在 Scala 中编码的最小配置,因为我的 IDE 很慢。我首先尝试使用我的构建系统,但最终使用了 SBT。与其他构建项目的方式相比,SBT 具有很大的优势。

首先它只编译需要的文件(那些被修改的,以及那些依赖它们的)。 其次,它对于导入库非常方便。 build.sbt 文件中的一行允许您从 github 导入库(通常这一行在 github 主页上明确说明)。 第三,您可以在每次保存时进行编译,使用命令“~compile”或“~; compile; runMain 'mainclass'”

我发现后者非常有用,因为使用 scala 编译通常很长。我经常开始添加一个简单的函数,保存,并在编译时改进我的第一次绘制。

如果你也有一些 Java 文件,主要的限制是你必须把你的代码放在 src/main/scala 或 src/main/java 中,并且你必须用 sublime 打开整个根目录。

【讨论】:

    【解决方案5】:

    仅限 Windows! 如果您已经将 bin 文件夹添加到 PATH 变量中:

    {
        "cmd": ["sbt.bat", "test"],
        "selector": "source.scala",
        "working_dir": "${project_path}"
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 2018-06-16
      • 1970-01-01
      • 2014-10-21
      • 2015-03-01
      相关资源
      最近更新 更多