Mi sto immergendo in Scala e ho notato sbt. Sono stato abbastanza soddisfatto di Gradle nei progetti java / groovy e so che esiste un plug-in scala per Gradle.
Quali potrebbero essere buone ragioni per preferire sbt a Gradle in un progetto Scala?
Mi sto immergendo in Scala e ho notato sbt. Sono stato abbastanza soddisfatto di Gradle nei progetti java / groovy e so che esiste un plug-in scala per Gradle.
Quali potrebbero essere buone ragioni per preferire sbt a Gradle in un progetto Scala?
Risposte:
Nota che una differenza fondamentale tra SBT e Gradle è la sua gestione delle dipendenze :
È vero che la cache può confondersi, ma non è vero che Ivy non capisce la risoluzione degli snapshot. Eugene ha spiegato questo punto in un altro thread, forse nell'elenco degli amministratori. C'è un problema con l'aggiornamento automatico di sbt che è stato risolto in 0.12.
Quello che Ivy non supporta, per quanto ne so, è la pubblicazione di istantanee nel modo in cui lo fa Maven. Credo di averlo affermato altrove, ma se qualcuno vuole migliorare la situazione, la mia opinione è che è meglio spendere gli sforzi lavorando con il team di Gradle per riutilizzare il proprio codice di gestione delle dipendenze.
Solo per farti sapere, i problemi con le dipendenze degli snapshot di Ivy e Maven sono stati uno dei motivi per cui Gradle alla fine ha sostituito Ivy con il proprio codice di gestione delle dipendenze. È stato un grande compito, ma ci ha portato tanta bontà.
Questo tweet menziona che l'intera situazione potrebbe evolversi in futuro:
Mark ha detto in passato che era interessato a usare Gradle invece di Ivy per SBT.
(entrambi gli strumenti possono imparare l'uno dall'altro )
Per me le caratteristiche principali di SBT sono:
fsc
).~test
ricompilerà e testerà il tuo progetto ogni volta che salvi una modifica.Gli svantaggi sono:
sbt è un DSL di Scala e per questo Scala è un cittadino di prima classe, quindi in linea di principio sembra essere una buona misura.
Ma sbt soffre di importanti modifiche incompatibili tra le versioni, il che rende difficile trovare il plugin funzionante corretto per un'attività e farlo funzionare.
Personalmente ho rinunciato a sbt, poiché causava più problemi di quanti ne risolvesse. In realtà sono passato a gradle.
Vai a capire.
Sono abbastanza nuovo per gradle e molto nuovo per sbt - quello che mi piace davvero di sbt finora è la console interattiva. Mi consente di utilizzare comandi come "inspect" per avere un'idea migliore di cosa sta succedendo. AFAIK gradle non fornisce qualcosa di simile a questo bancomat.
Sbt e gradle, entrambi sono basati su linguaggi tipizzati staticamente ... ma sbt ha pochi vantaggi: