Я пробовал и то и другое, и в итоге я предпочитаю прямой 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 все еще находится на ранних этапах. Презентация Марка Харры в NEScala доступна на сайте http://www.nescala.org/2011/, если вам интересно.
Полезные плагины
- http://github.com/mpeltonen/sbt-idea - легко создавать и поддерживать ваш проект Idea в синхронизации с вашим проектом sbt
- http://github.com/orfjackal/idea-sbt-plugin - позволяет создавать профили запуска для sbt изнутри Idea (я обнаружил, что это медленнее, чем запуск sbt в командной строке в октябре прошлого года - но я вижу, что orfjackal все еще развивается, поэтому я должен сделать еще один выстрел)