我目前在使用 IDEA 的构建机制与 fsc 来进行 Scala 开发。它依然有一定的缓慢性,而且重新启动编译服务器也很痛苦。这里有很多人建议使用 SBT 作为构建工具并与 IDEA 一起使用。
你认为每种方法的利弊如何?
我目前在使用 IDEA 的构建机制与 fsc 来进行 Scala 开发。它依然有一定的缓慢性,而且重新启动编译服务器也很痛苦。这里有很多人建议使用 SBT 作为构建工具并与 IDEA 一起使用。
你认为每种方法的利弊如何?
我尝试了两种方式,最终我更喜欢直接使用sbt进行编译。
缺点? 我真的很想通过单击来跳转到编译错误并直接修复代码,但是......在sbt中进行编译要快得多。
Idea Scala插件的夜间构建质量/性能可能会有所不同,但最近一直在变得越来越好。Scala插件现在可以标记出许多之前需要运行compile才能捕捉到的错误。(例如,我正在运行夜间构建0.4.693,并且新的方法检查已经非常有用)。
对于在命令行上使用sbt的建议:尽可能长时间地交互式运行sbt,以利用所有加载和JIT编译。长时间运行的sbt最终会崩溃,但通过在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/。
有用的插件