2012-03-06 32 views
155

Khi tôi biên dịch mã Scala, bằng cách chạy sbt compile, SBT nói:Scala SBT: Làm thế nào để "chạy lại với -deprecation"

$ sbt compile 
... 
[warn] there were 5 deprecation warnings; re-run with -deprecation for details 
... 

Làm thế nào để làm điều đó? (? Từ bên trong SBT)

+2

câu hỏi tương tự (bao gồm các câu trả lời cho câu hỏi của bạn) tại http://stackoverflow.com/questions/9415962/how-to- see-all-the-warnings-in-sbt-0-11 –

Trả lời

199

Nếu bạn không muốn thay đổi bạn build.sbt:

$ sbt 
> set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") 
> compile 
> exit 

Chỉnh sửa: Thêm "-unchecked"in ThisBuild mỗi bình luận.

+5

Cảm ơn! Và 'set scalacOptions + =" -unchecked "' cũng làm việc :-) – KajMagnus

+2

(Đối với lệnh có bất kỳ hiệu ứng nào trong xây dựng tiểu dự án, tôi phải chuyển sang tiểu dự án: 'project ') – KajMagnus

+0

Và vấn đề lệnh 'set ...' một lần nữa. – KajMagnus

18
scalacOptions := Seq("-unchecked", "-deprecation") 

Thêm cài đặt này để build.sbt của bạn, và nếu bạn có một dự án đa mô-đun, thêm nó vào các thiết lập của mỗi dự án.

0

Khi thời gian trôi qua, các giải pháp mới sẽ xuất hiện. Vì vậy, bây giờ bạn có thể chạy lại trình biên dịch scala mà không phát hành toàn bộ dự án xây dựng lại.

Bạn cần cài đặt ensime-sbt plugin:

addSbtPlugin("org.ensime" % "sbt-ensime" % "1.0.0") 

Sau đó bạn có thể sử dụng các nhiệm vụ ensimeCompileOnly để biên dịch tập tin duy nhất. SBT cho phép mỗi cấu hình nhiệm vụ cài đặt, do đó bạn có thể thay đổi cho duy nhất mà nhiệm vụ:

set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation" 
ensimeCompileOnly src/main/scala/MyFile.scala 
Các vấn đề liên quan