Công cụ xây dựng nào là tốt nhất cho Scala? Những ưu và nhược điểm của mỗi người trong số họ là gì? Làm thế nào để tôi xác định một trong số họ sẽ sử dụng trong một dự án?
Công cụ xây dựng nào là tốt nhất cho Scala? Những ưu và nhược điểm của mỗi người trong số họ là gì? Làm thế nào để tôi xác định một trong số họ sẽ sử dụng trong một dự án?
Câu trả lời:
Chúng tôi đang sử dụng Maven để xây dựng các dự án Scala tại nơi làm việc vì nó tích hợp tốt với máy chủ CI của chúng tôi. Chúng tôi chỉ có thể chạy một kịch bản shell để khởi động một bản dựng, tất nhiên, nhưng chúng tôi đã có một loạt các thông tin khác từ Maven mà chúng tôi muốn truy cập vào CI. Đó là lý do duy nhất tôi có thể nghĩ đến để sử dụng Maven cho một dự án Scala.
Nếu không, chỉ cần sử dụng SBT. Bạn có quyền truy cập vào cùng các phụ thuộc (thực sự là phần hay nhất về maven, IMHO). Bạn cũng có được phần tổng hợp gia tăng, rất lớn. Khả năng khởi động một lớp vỏ bên trong dự án của bạn, điều này cũng rất tuyệt.
ScalaMock chỉ hoạt động với SBT và có lẽ bạn sẽ muốn sử dụng thư viện đó hơn là thư viện giả định Java. Trên hết, việc mở rộng SBT dễ dàng hơn nhiều vì bạn có thể viết mã scala đầy đủ trong tệp xây dựng, do đó bạn không phải trải qua tất cả các quy tắc viết Mojo.
Nói tóm lại, chỉ cần sử dụng SBT trừ khi bạn thực sự cần tích hợp chặt chẽ vào máy chủ CI của bạn.
Câu hỏi có nguy cơ chỉ tạo ra nhiều ý kiến; sẽ tốt hơn nếu có một danh sách rõ ràng các yêu cầu hoặc mô tả về môi trường của bạn, kiến thức trước đây, v.v.
FWIW, có nhiều ý kiến hơn trong chủ đề danh sách gửi thư scala này .
2c của tôi là: Đi với sbt nếu bạn không có yêu cầu cụ thể
gen-idea
nhiệm vụ, và mở lại dự án: cập nhật xong.compile
, test
, run
, doc
, publish-local
, console
) - sự console
là một trong những tính năng tốt nhất.Một số người ghét sbt vì nó sử dụng Ivy để quản lý phụ thuộc (tôi không thể nhận xét về ưu và nhược điểm của nó, nhưng hầu hết thời gian không phải là vấn đề), một số người ghét sbt vì bạn chỉ định tệp xây dựng theo điều khoản của Scala DSL thay vì XML. Một số người đã thất vọng vì định dạng của sbt đã thay đổi từ v0.7 thành v0.10, nhưng rõ ràng, việc di chuyển sẽ không ảnh hưởng đến bạn nếu bạn bắt đầu từ đầu.