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