Scala'ya dalıyorum ve sbt'yi fark ettim. Java / groovy projelerinde Gradle'dan oldukça memnun kaldım ve Gradle için bir scala eklentisi olduğunu biliyorum.
Bir Scala projesinde Gradle yerine sbt'yi tercih etmek için iyi nedenler ne olabilir?
Scala'ya dalıyorum ve sbt'yi fark ettim. Java / groovy projelerinde Gradle'dan oldukça memnun kaldım ve Gradle için bir scala eklentisi olduğunu biliyorum.
Bir Scala projesinde Gradle yerine sbt'yi tercih etmek için iyi nedenler ne olabilir?
Yanıtlar:
SBT ve Gradle arasındaki önemli bir farkın bağımlılık yönetimi olduğunu unutmayın :
Önbelleğin kafasının karışabileceği doğru, ancak Ivy'nin anlık görüntüleri çözmeyi anlamadığı doğru değil. Eugene bu noktayı başka bir başlıkta, belki de yönetici listesinde açıkladı. 0.12'de ele alınan sbt'nin otomatik güncellemesinde bir sorun var.
Bildiğim kadarıyla Ivy'nin desteklemediği şey, Maven'in yaptığı gibi anlık görüntüler yayınlamak. Bunu başka bir yerde ifade ettiğime inanıyorum, ancak durumu iyileştirmek isteyen biri olursa, bence en iyi çaba, bağımlılık yönetimi kodunu yeniden kullanmak için Gradle ekibiyle birlikte çalışmaktır.
Sizi bilgilendirmek gerekirse, Ivy ve Maven anlık görüntü bağımlılıkları ile ilgili sorunlar, Gradle'ın sonunda Ivy'yi kendi bağımlılık yönetimi koduyla değiştirmesinin nedenlerinden biriydi. Bu büyük bir görevdi ama bize pek çok iyilik getirdi.
Bu tweet , tüm durumun gelecekte gelişebileceğinden bahsediyor:
Mark, geçmişte SBT için Ivy yerine Gradle kullanmakla ilgilendiğini söylemişti.
(her iki araç da birbirinden öğrenebilir )
Benim için SBT'nin temel özellikleri:
fsc
).~test
, bir değişikliği her kaydettiğinizde yeniden derler ve projenizi test eder.Olumsuz yönler:
sbt bir Scala DSL'dir ve onun için Scala birinci sınıf bir vatandaştır, bu nedenle prensipte uygun görünmektedir.
Ancak sbt, sürümler arasında büyük uyumsuz değişikliklerden muzdariptir, bu da bir görev için doğru çalışan eklentiyi bulmayı ve çalıştırmayı zorlaştırır.
Çözdüğünden daha fazla soruna neden olduğu için kişisel olarak sbt'den vazgeçtim. Aslında gradle'a geçtim.
Şekle gidin.
Sbt ve gradle, her ikisi de statik olarak yazılmış dillere dayanmaktadır ... ancak sbt'nin birkaç avantajı vardır: