Quale strumento di costruzione è il migliore per Scala? Quali sono i pro e i contro di ciascuno di essi? Come determinare quale di questi utilizzare in un progetto?
Quale strumento di costruzione è il migliore per Scala? Quali sono i pro e i contro di ciascuno di essi? Come determinare quale di questi utilizzare in un progetto?
Risposte:
Stiamo usando Maven per costruire progetti Scala al lavoro perché si integra bene con il nostro server CI. Potremmo semplicemente eseguire uno script di shell per dare il via a una build, ovviamente, ma abbiamo un sacco di altre informazioni che escono da Maven e che vogliamo entrare in CI. Questo è l'unico motivo per cui riesco a pensare di usare Maven per un progetto Scala.
Altrimenti, basta usare SBT. Ottieni l'accesso alle stesse dipendenze (davvero la parte migliore di Maven, IMHO). Ottieni anche la compilazione incrementale, che è enorme. La capacità di avviare una shell all'interno del tuo progetto, che è anche grandiosa.
ScalaMock funziona solo con SBT e probabilmente vorrai usarlo piuttosto che una libreria di derisione Java. Inoltre, è molto più semplice estendere SBT poiché puoi scrivere il codice scala completo nel file build, quindi non devi passare attraverso tutto il rigamarole della scrittura di un Mojo.
In breve, usa SBT a meno che tu non abbia davvero bisogno di una stretta integrazione nel tuo server CI.
La domanda rischia di generare molte opinioni; sarebbe meglio avere un chiaro elenco di requisiti o una descrizione del proprio ambiente, conoscenze precedenti, ecc.
FWIW, ci sono più opinioni in questo thread della mailing list scala .
I miei 2c sono: vai con sbt se non hai requisiti specifici
gen-idea
attività e riaprire il progetto: aggiornamenti eseguiti.compile
, test
, run
, doc
, publish-local
, console
) - la console
è una delle migliori caratteristiche.Alcune persone odiano sbt perché usa Ivy per la gestione delle dipendenze (non posso commentare i suoi pro e contro, ma il più delle volte è un problema), alcune persone odiano sbt perché specifichi il file build in termini di un Scala DSL anziché XML. Alcune persone sono state deluse dal fatto che il formato di sbt sia cambiato da v0.7 a v0.10, ma ovviamente la migrazione non influirà su di te se inizi da zero.