Quel outil de construction est le meilleur pour Scala? Quels sont les avantages et les inconvénients de chacun d'eux? Comment déterminer lequel d'entre eux doit être utilisé dans un projet?
Nous utilisons Maven pour construire des projets Scala au travail car ils s’intègrent bien avec notre serveur CI. Nous pourrions simplement exécuter un script Shell pour lancer une construction, bien sûr, mais nous avons une foule d’autres informations provenant de Maven que nous souhaitons intégrer à CI. C’est à peu près la seule raison pour laquelle je peux penser à utiliser Maven pour un projet Scala.
Sinon, utilisez simplement SBT. Vous avez accès aux mêmes dépendances (la meilleure partie de maven, à mon humble avis). Vous obtenez également la compilation incrémentale, qui est énorme. La possibilité de démarrer un shell dans le cadre de votre projet est également excellente.
ScalaMock ne fonctionne qu'avec SBT, et vous allez probablement vouloir l'utiliser plutôt qu'une bibliothèque moqueuse Java. En plus, c'est beaucoup plus facile à étendre SBT puisque vous pouvez écrire le code complet scala dans le fichier de construction, vous n’aurez donc pas à passer par tout le rigamarole de l’écriture d’un Mojo.
En bref, utilisez simplement SBT sauf si vous avez vraiment besoin d’une intégration étroite dans votre serveur CI.
La question risque de générer beaucoup d'opinions. il serait préférable d'avoir une liste claire des exigences ou une description de votre environnement, de vos connaissances antérieures, etc.
FWIW, il y a plus d'opinions dans ce sujet de la liste de diffusion scala .
Mes 2c sont: Allez avec sbt si vous n'avez pas d'exigences spécifiques
gen-idea
, Puis rouvrez le projet: mises à jour effectuées.compile
, test
, run
, doc
, publish-local
, console
) - le console
est l’une des meilleures fonctionnalités.Certaines personnes détestent sbt parce qu’elle utilise Ivy pour la gestion de la dépendance (je ne peux pas en dire plus sur ses avantages et ses inconvénients, mais la plupart du temps, il s’agit d’un non-problème), certaines personnes détestent sbt parce que vous spécifiez le fichier de construction en tant que Scala DSL au lieu de XML. Certaines personnes ont été déçues que le format de sbt soit passé de v0.7 à v0.10, mais il est évident que la migration ne vous affectera pas si vous partez de zéro.