Я ныряю в Scala и заметил sbt. Мне очень нравится Gradle в проектах java / groovy, и я знаю, что для Gradle есть плагин scala.
Какие могут быть веские причины отдать предпочтение sbt над Gradle в проекте Scala?
Я ныряю в Scala и заметил sbt. Мне очень нравится Gradle в проектах java / groovy, и я знаю, что для Gradle есть плагин scala.
Какие могут быть веские причины отдать предпочтение sbt над Gradle в проекте Scala?
Ответы:
Обратите внимание, что одно из ключевых различий между SBT и Gradle - это управление зависимостями :
Это правда, что кеш может запутаться, но это неправда, что Айви не понимает разрешения снимков. Евгений объяснил этот момент в другой ветке, возможно, в списке администраторов. Проблема с автоматическим обновлением sbt устранена в версии 0.12.
Насколько мне известно, Ivy не поддерживает публикацию снимков, как это делает Maven. Я считаю, что я уже говорил об этом в другом месте, но если кто-то хочет улучшить ситуацию, я считаю, что лучше всего потратить усилия на работу с командой Gradle, чтобы повторно использовать их код управления зависимостями.
Чтобы вы знали, проблемы с зависимостями снимков Ivy и Maven были одной из причин, по которым Gradle в конечном итоге заменил Ivy собственным кодом управления зависимостями. Это была большая задача, но она принесла нам много добра.
В этом твите упоминается, что вся ситуация может измениться в будущем:
Марк сказал в прошлом, что он был заинтересован в использовании Gradle вместо Ivy для SBT.
(оба инструмента могут учиться друг у друга )
Для меня ключевыми особенностями SBT являются:
fsc
).~test
будет перекомпилировать и тестировать ваш проект каждый раз, когда вы сохраняете модификацию.Минусы:
sbt - это Scala DSL, и для него Scala - первоклассный гражданин, поэтому в принципе он кажется подходящим.
Но sbt страдает от серьезных несовместимых изменений между версиями, из-за чего трудно найти правильный рабочий плагин для задачи и заставить его работать.
Я лично отказался от sbt, потому что он доставлял больше проблем, чем решал. Я фактически перешел на Gradle.
Иди разбери.
Sbt и gradle, оба основаны на статически типизированных языках .... но sbt имеет несколько преимуществ: