Je plonge dans Scala et remarque sbt. J'ai été assez satisfait de Gradle dans les projets java / groovy, et je sais qu'il existe un plugin scala pour Gradle.
Quelles pourraient être de bonnes raisons de privilégier sbt à Gradle dans un projet Scala?
Je plonge dans Scala et remarque sbt. J'ai été assez satisfait de Gradle dans les projets java / groovy, et je sais qu'il existe un plugin scala pour Gradle.
Quelles pourraient être de bonnes raisons de privilégier sbt à Gradle dans un projet Scala?
Réponses:
Notez qu'une différence clé entre SBT et Gradle est sa gestion des dépendances :
Il est vrai que le cache peut devenir confus, mais ce n'est pas vrai qu'Ivy ne comprend pas la résolution des instantanés. Eugene a expliqué ce point dans un autre fil, peut-être sur la liste des administrateurs. Il y a un problème avec la mise à jour automatique de sbt qui a été résolu dans la version 0.12.
Ce que Ivy ne prend pas en charge, pour autant que je sache, c'est la publication d'instantanés à la manière de Maven. Je crois que j'ai dit cela ailleurs, mais si quelqu'un veut améliorer la situation, mon opinion est qu'il vaut mieux faire l'effort de travailler avec l'équipe Gradle pour réutiliser son code de gestion des dépendances.
Juste pour vous le faire savoir, les problèmes avec les dépendances de snapshot Ivy et Maven étaient l'une des raisons pour lesquelles Gradle a finalement remplacé Ivy par son propre code de gestion des dépendances. C'était une tâche énorme, mais nous a apporté beaucoup de bonté.
Ce tweet mentionne que toute la situation pourrait évoluer à l'avenir:
Mark a dit dans le passé qu'il était intéressé à utiliser Gradle au lieu d'Ivy pour SBT.
(les deux outils peuvent apprendre l'un de l'autre )
Pour moi, les principales caractéristiques de SBT sont:
fsc).~testrecompilera et testera votre projet à chaque fois que vous enregistrez une modification.Les inconvénients sont:
sbt est un DSL Scala et pour cela Scala est un citoyen de première classe, donc en principe, il semble être un bon choix.
Mais sbt souffre de changements incompatibles majeurs entre les versions, ce qui rend difficile de trouver le bon plugin fonctionnel pour une tâche et de le faire fonctionner.
J'ai personnellement abandonné sbt, car cela posait plus de problèmes qu'il n'en résolvait. Je suis en fait passé à gradle.
Allez comprendre.
Je suis assez nouveau dans gradle, et très nouveau dans sbt - ce que j'aime vraiment dans sbt jusqu'à présent, c'est la console interactive. Cela me permet d'utiliser des commandes comme «inspecter» pour avoir une meilleure idée de ce qui se passe. AFAIK gradle ne fournit pas quelque chose comme ce atm.
Sbt et gradle, tous deux sont basés sur des langages typés statiquement ... mais sbt a peu d'avantages: