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