Saya menyelam ke Scala dan memperhatikan sbt. Saya cukup senang dengan Gradle di proyek java / groovy, dan saya tahu ada plugin scala untuk Gradle.
Apa alasan bagus untuk lebih memilih sbt daripada Gradle dalam proyek Scala?
Saya menyelam ke Scala dan memperhatikan sbt. Saya cukup senang dengan Gradle di proyek java / groovy, dan saya tahu ada plugin scala untuk Gradle.
Apa alasan bagus untuk lebih memilih sbt daripada Gradle dalam proyek Scala?
Jawaban:
Perhatikan bahwa satu perbedaan utama antara SBT dan Gradle adalah manajemen ketergantungannya :
Memang benar cache bisa membingungkan, tetapi tidak benar bahwa Ivy tidak memahami menyelesaikan snapshot. Eugene menjelaskan hal ini di utas lain, mungkin di daftar admin. Ada masalah dengan pembaruan otomatis sbt yang telah diatasi di 0.12.
Yang tidak didukung Ivy, sejauh yang saya tahu, adalah menerbitkan snapshot seperti yang dilakukan Maven. Saya yakin saya telah menyatakan ini di tempat lain, tetapi jika ada yang ingin memperbaiki situasi, pendapat saya adalah upaya terbaik dihabiskan dengan bekerja dengan tim Gradle untuk menggunakan kembali kode manajemen ketergantungan mereka.
Sekadar memberi tahu Anda, masalah dengan dependensi snapshot Ivy dan Maven adalah salah satu alasan mengapa Gradle pada akhirnya mengganti Ivy dengan kode manajemen dependensinya sendiri. Itu adalah tugas besar, tapi memberi kami banyak kebaikan.
Tweet ini menyebutkan bahwa semua situasi dapat berkembang di masa depan:
Mark mengatakan sebelumnya bahwa dia tertarik menggunakan Gradle daripada Ivy untuk SBT.
(kedua alat dapat saling belajar )
Bagi saya, fitur utama SBT adalah:
fsc
).~test
akan mengkompilasi ulang dan menguji proyek Anda setiap kali Anda menyimpan modifikasi.Kerugiannya adalah:
sbt adalah Scala DSL dan untuk itu Scala adalah warga negara kelas satu, jadi pada prinsipnya tampaknya cocok.
Tetapi sbt menderita perubahan besar yang tidak kompatibel antar versi, yang membuatnya sulit untuk menemukan plugin yang berfungsi dengan benar untuk suatu tugas dan membuatnya berfungsi.
Saya pribadi menyerah pada sbt, karena itu menyebabkan lebih banyak masalah daripada diselesaikan. Saya benar-benar beralih ke gradle.
Sosok pergi.
Saya cukup baru mengenal gradle, dan sangat baru dalam sbt - yang sangat saya sukai dari sbt sejauh ini adalah konsol interaktif. Ini memungkinkan saya menggunakan perintah seperti 'memeriksa' untuk mendapatkan gambaran yang lebih baik tentang apa yang sedang terjadi. AFAIK gradle tidak menyediakan atm seperti ini.
Sbt dan gradle, keduanya didasarkan pada bahasa yang diketik secara statis .... tetapi sbt memiliki beberapa keunggulan: