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 utiliser dans un projet?
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 utiliser dans un projet?
Réponses:
Nous utilisons Maven pour construire des projets Scala au travail car il s'intègre bien à notre serveur CI. Nous pourrions simplement exécuter un script shell pour lancer une construction, bien sûr, mais nous avons un tas d'autres informations provenant de Maven et que nous voulons entrer dans CI. C'est à peu près la seule raison pour laquelle je peux penser d'utiliser Maven pour un projet Scala.
Sinon, utilisez simplement SBT. Vous avez accès aux mêmes dépendances (vraiment la meilleure partie de maven, à mon humble avis). Vous obtenez également la compilation incrémentielle, ce qui est énorme. La possibilité de démarrer un shell à l'intérieur de votre projet, ce qui est également excellent.
ScalaMock ne fonctionne qu'avec SBT, et vous allez probablement vouloir l'utiliser plutôt qu'une bibliothèque de simulation Java. En plus de ça, c'est beaucoup plus facile d'étendre SBT puisque vous pouvez écrire du code scala complet dans le fichier de construction, vous n'avez donc pas à passer par toute la rigueur 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 ne générer que de nombreuses opinions; il serait préférable d'avoir une liste claire des exigences ou une description de votre environnement, des connaissances antérieures, etc.
FWIW, il y a plus d'opinions dans ce fil de discussion de la liste de diffusion scala .
Mes 2c sont: optez pour sbt si vous n'avez pas d'exigences spécifiques
gen-idea
tâche, et rouvrez le projet: mises à jour effectuées.compile
, test
, run
, doc
, publish-local
, console
) - le console
est l' une des meilleures caractéristiques.Certaines personnes détestent sbt car il utilise Ivy pour la gestion des dépendances (je ne peux pas commenter ses avantages et ses inconvénients, mais la plupart du temps, ce n'est pas un problème), certaines personnes détestent sbt parce que vous spécifiez le fichier de construction en termes de Scala DSL au lieu de XML. Certaines personnes ont été déçues que le format de sbt soit passé de la v0.7 à la v0.10, mais évidemment, la migration ne vous affectera pas si vous partez de zéro.