Scala + IDEA: плюсы и минусы sbt и fsc - PullRequest
10 голосов
/ 17 марта 2011

В настоящее время я использую механизм сборки IDEA с fsc для разработки с Scala.Это все еще немного медленно, и необходимость (пере) запуска сервера компиляции - это боль.Многие люди здесь предлагают SBT как инструмент для сборки вместе с IDEA.

Что вы думаете о плюсах и минусах каждого подхода?

1 Ответ

10 голосов
/ 18 марта 2011

Я пробовал и то и другое, и в итоге я предпочитаю прямой 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 все еще развивается, поэтому я должен сделать еще один выстрел)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...