Alat build mana yang terbaik untuk Scala? Apa pro dan kontra dari masing-masingnya? Bagaimana cara menentukan yang mana yang akan digunakan dalam sebuah proyek?
Alat build mana yang terbaik untuk Scala? Apa pro dan kontra dari masing-masingnya? Bagaimana cara menentukan yang mana yang akan digunakan dalam sebuah proyek?
Jawaban:
Kami menggunakan Maven untuk membangun proyek Scala di tempat kerja karena terintegrasi dengan baik dengan server CI kami. Kami hanya dapat menjalankan skrip shell untuk memulai pembuatan, tentu saja, tetapi kami memiliki banyak informasi lain yang keluar dari Maven yang ingin kami masukkan ke CI. Itulah satu-satunya alasan yang dapat saya pikirkan untuk menggunakan Maven untuk proyek Scala.
Jika tidak, gunakan saja SBT. Anda mendapatkan akses ke dependensi yang sama (benar-benar bagian terbaik tentang maven, IMHO). Anda juga mendapatkan kompilasi inkremental, yang sangat besar. Kemampuan untuk memulai shell di dalam proyek Anda, yang juga bagus.
ScalaMock hanya bekerja dengan SBT, dan Anda mungkin ingin menggunakannya daripada perpustakaan tiruan Java. Selain itu, jauh lebih mudah untuk memperpanjang SBT karena Anda dapat menulis kode skala penuh di file build, jadi Anda tidak perlu melalui semua kesulitan dalam menulis Mojo.
Singkatnya, cukup gunakan SBT kecuali Anda benar-benar membutuhkan integrasi yang erat ke server CI Anda.
Pertanyaannya adalah bahaya hanya menghasilkan banyak opini; akan lebih baik untuk memiliki daftar persyaratan yang jelas atau deskripsi tentang lingkungan Anda, pengetahuan sebelumnya, dll.
FWIW, ada lebih banyak pendapat di utas milis scala ini .
2c saya adalah: Gunakan sbt jika Anda tidak memiliki persyaratan khusus
gen-idea
tugas, dan buka kembali proyek: pembaruan selesai.compile
, test
, run
, doc
, publish-local
, console
) - yang console
merupakan salah satu fitur terbaik.Beberapa orang membenci sbt karena menggunakan Ivy untuk manajemen ketergantungan (saya tidak dapat mengomentari pro dan kontra, tetapi sebagian besar waktu itu bukan masalah), beberapa orang membenci sbt karena Anda menentukan file build dalam hal a Scala DSL, bukan XML. Beberapa orang kecewa karena format sbt berubah dari v0.7 menjadi v0.10, tetapi jelas, migrasi tidak akan memengaruhi Anda jika Anda memulai dari awal.