Я занурився в 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, оскільки це викликало більше проблем, ніж вирішувало. Я фактично перейшов на градле.
Піди розберися.
Обидва Sbt і gradle базуються на статично введених мовах .... але sbt має мало переваг: