2015-02-10 20 views
11

Trong định nghĩa build.sbt của dự án Scala, có thể xác định phiên bản tối thiểu của sbt được yêu cầu để xây dựng dự án không?Có cách nào để xác định phiên bản sbt được yêu cầu trong build.sbt không?

+0

bạn xác định phiên bản sbt trong build.properties. Bạn có ý nghĩa gì bởi phiên bản tối thiểu? Bất kỳ phiên bản lớn hơn phiên bản tối thiểu là tốt? – mohit

+0

@mohit Đúng vậy. – Bar

Trả lời

15

project/build.properties cho phép bạn buộc sbt sử dụng phiên bản cụ thể. Nếu phiên bản hiện hành của SBT được cài đặt là khác nhau - SBT tự nó sẽ tải về (nếu cần) phiên bản mà bạn đã chỉ định có:

sbt.version=0.12.0 

Xem, Hello ví dụ. Vì vậy, thực sự bạn có thể đã cài đặt một số phiên bản của sbt trong hệ thống của bạn - nó chỉ là lọ, được đặt trong thư mục .sbt/boot/scala-{scala.version required by this sbt}/org.scala-sbt/sbt/{sbt.version}. Sbt thực thi thực sự tìm phiên bản được chỉ định trong project/build.properties hoặc (nếu nó không được chỉ định) phiên bản cao nhất được cài đặt trong hệ thống.

P.S. Từ quan điểm sbt-launcher, sbt chỉ là một phụ thuộc với những người không giao nhau nhỏ như ansi.jar, vì vậy việc chỉ định phạm vi các phiên bản như [0.13.1, 0.13.8] không có ý nghĩa gì nhiều vì nó chỉ có thể gây phiền toái cho các xung đột gián tiếp. Nếu không, nó đủ để chỉ định phiên bản cao hơn có thể (mà sẽ biên dịch) - thậm chí bạn có thể chọn một số phiên bản mà bạn đã có (và cập nhật sbt của dự án theo cách đó).

+0

OK để tôi có thể chỉ định một phiên bản cụ thể nhưng không phải là "lớn hơn", điều đó có đúng không? – Bar

+1

Có. Tuyệt vời hơn là không có ý nghĩa ở đây vì bạn có thể tự động có bất kỳ phiên bản nào của sbt trên máy tính. Nếu bạn thực sự cần hơn + ngoại lệ - bạn có thể kiểm tra nó theo cách thủ công bên trong 'build.sbt' bằng cách phân tích' sbtVersion.value', nhưng đây không phải là cách cho sbt. – dk14

+1

Lớn hơn sẽ thực sự tốt đẹp. Nếu bạn định sử dụng cú pháp, ví dụ, được giới thiệu trong 0.13.6, nó sẽ là tốt đẹp để chỉ ra rằng phiên bản tối thiểu cần thiết là 0.13.6, nhưng nếu bạn đang sử dụng 0.13.7 đó là tốt (nghĩa là, nó không cần tải xuống 0,13,6). –

Các vấn đề liên quan