【发布时间】:2025-11-27 05:30:01
【问题描述】:
我目前正在使用带有 fsc 的 IDEA 构建机制来使用 Scala 进行开发。它仍然有点慢,不得不(重新)启动编译服务器是一件痛苦的事情。这里有很多人建议将 SBT 与 IDEA 一起作为构建工具。
您认为每种方法的优缺点是什么?
【问题讨论】:
-
*.com/questions/3606591/…中的一些(部分)答案
标签: scala intellij-idea sbt
我目前正在使用带有 fsc 的 IDEA 构建机制来使用 Scala 进行开发。它仍然有点慢,不得不(重新)启动编译服务器是一件痛苦的事情。这里有很多人建议将 SBT 与 IDEA 一起作为构建工具。
您认为每种方法的优缺点是什么?
【问题讨论】:
标签: scala intellij-idea sbt
我都试过了,最后我更喜欢直接 sbt 来编译。
缺点?我真的很怀念能够点击编译错误并直接修复代码,但是......在 sbt 中编译要快得多。
Idea Scala 插件的每晚构建在质量/性能方面可能会有所不同,但最近它变得越来越好。 Scala 插件现在可以标记一些在我必须运行编译才能捕获的错误。 (例如,我在夜间运行构建 0.4.693,新方法检查已经非常有用。)
我对在命令行上使用 sbt 的建议:启动 sbt 并让它尽可能长时间地以交互方式运行,以利用所有正在加载和 JIT-ed 的东西。
sbt left running 最终会失败,但通过在 sbt 包装器中为其提供更多内存,您可以很少发生这种情况。
这是适合我的 sbt 启动包装器。
java -Xms512M -Xmx1500M -XX:MaxPermSize=512m -jar `dirname $0`/sbt-launch.jar "$@"
我对 sbt 0.7 的最大问题是它经常返回并重新编译大量文件,这些文件似乎与我实际更改的代码无关。 (即便如此,还是比 Idea 和 fsc 快!)
好消息:sbt 0.9 有一些很棒的增量编译改进。不幸的是,从 0.7 到 0.9 的迁移路径仍处于早期阶段。 Mark Harrah 在 NEScala 的演讲在线http://www.nescala.org/2011/,如果您有兴趣。
有用的插件
【讨论】: