Je plonge dans Scala et remarque sbt. Je suis assez satisfait de Gradle dans les projets Java/groovy et je sais qu’il existe un plug-in scala pour Gradle.
Quelles pourraient être les bonnes raisons de favoriser sbt par rapport à Gradle dans un projet Scala?
Notez que l’une des principales différences entre SBT et Gradle réside dans sa gestion de la dépendance :
Il est vrai que le cache peut devenir confus, mais il n'est pas vrai qu'Ivy ne comprend pas la résolution des instantanés. Eugene a expliqué ce point dans un autre fil de discussion, peut-être sur la liste des administrateurs. Il y a un problème avec la mise à jour automatique de sbt qui a été traité dans 0.12.
Pour autant que je sache, Ivy ne prend pas en charge la publication d'instantanés comme Maven. Je pense l'avoir déjà dit ailleurs, mais si quelqu'un souhaite améliorer la situation, mon avis est qu'il est préférable de travailler avec l'équipe de Gradle pour réutiliser son code de gestion des dépendances.
Juste pour vous dire que les problèmes liés aux dépendances de capture instantanée Ivy et Maven ont été l'une des raisons pour lesquelles Gradle a finalement remplacé Ivy avec son propre code de gestion de dépendance. C'était une grosse tâche, mais nous a apporté beaucoup de bonté.
This Tweet mentionne que la situation générale pourrait évoluer à l'avenir:
Mark a déclaré par le passé qu'il était intéressé par l'utilisation de Gradle à la place de Ivy pour SBT.
(les deux outils peuvent apprendre l'un de l'autre )
Pour moi, les principales caractéristiques de SBT sont:
fsc
).~test
va recompiler et tester votre projet à chaque fois que vous enregistrez une modification.Les inconvénients sont:
sbt est un Scala DSL et pour lui Scala est un citoyen de première classe, il semble donc en principe être un bon choix.
Mais sbt souffre de changements incompatibles majeurs entre les versions, ce qui rend difficile de trouver le plug-in qui fonctionne pour une tâche et de la faire fonctionner.
Personnellement, j’ai abandonné le sbt, car cela causait plus de problèmes qu’il n’en résolvait. En fait, je suis passé à Gradle.
Allez comprendre.
Je suis assez nouveau dans le domaine des diplômes et très nouveau dans sbt - ce que j’aime vraiment beaucoup dans sbt jusqu’à présent, c’est la console interactive. Cela me permet d'utiliser des commandes telles que "inspecter" pour avoir une meilleure idée de ce qui se passe. Autant que je sache, AFAIK ne fournit pas quelque chose comme cette atm.