Какой инструмент построения лучше всего подходит для Scala? Каковы плюсы и минусы каждого из них? Как определить, какой из них использовать в проекте?
Мы используем Maven для создания проектов Scala на работе, потому что он хорошо интегрируется с нашим CI-сервером. Мы могли бы просто запустить оболочку script, чтобы начать сборку, конечно же, но у нас есть куча другой информации, выходящей из Maven, которую мы хотим зайти в CI. Это единственная причина, по которой я могу думать о том, чтобы использовать Maven для проекта Scala.
В противном случае просто используйте SBT. Вы получаете доступ к тем же зависимостям (действительно лучшая часть о maven, IMHO). Вы также получаете инкрементную компиляцию, которая огромна. Возможность запуска оболочки внутри вашего проекта, что тоже отлично.
ScalaMock работает только с SBT, и вы, вероятно, захотите использовать это, а не для Java mocking library. Кроме того, гораздо проще расширить SBT, так как вы можете написать полный код Scala в файле сборки, так что вам не нужно проходить через все rigamarole написания Mojo.
Короче говоря, просто используйте SBT, если вам не нужна жесткая интеграция в ваш сервер CI.
Вопрос заключается в том, чтобы просто генерировать множество мнений; было бы лучше иметь четкий список требований или описание вашей среды, предыдущих знаний и т.д.
FWIW, в существует <... scala список рассылки.
Мои 2c: Go с sbt, если у вас нет конкретных требований
gen-idea
и повторно открыть проект: сделанные обновления.compile
, test
, run
, doc
, publish-local
, console
) - console
- одна из лучших функций.Некоторые люди ненавидят sbt, потому что используют Ivy для управления зависимостями (я не могу прокомментировать ее плюсы и минусы, но большую часть времени это не проблема), некоторые люди ненавидят sbt, потому что вы указываете файл сборки в термины scala DSL вместо XML. Некоторые люди были разочарованы тем, что формат sbt изменился с v0.7 на v0.10, но, очевидно, миграция не повлияет на вас, если вы начнете с нуля.