Ketika saya mengkompilasi kode Scala, dengan menjalankan sbt compile, SBT mengatakan:
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
Bagaimana aku melakukan itu? (Dari dalam SBT?)
Ketika saya mengkompilasi kode Scala, dengan menjalankan sbt compile, SBT mengatakan:
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
Bagaimana aku melakukan itu? (Dari dalam SBT?)
Jawaban:
Sementara di sbt shell (jika Anda tidak ingin mengubah build.sbt):
$ sbt
> set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation")
> compile
> exit
Karena in ThisBuild, setberlaku pengaturan untuk semua sub-proyek, juga.
Anda juga bisa menjalankan di atas sebagai satu perintah pada baris perintah.
sbt '; set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") ; compile'
Caranya adalah dengan menggunakan ;(titik koma) untuk memisahkan perintah dan '(centang) untuk memasukkan semua ;perintah yang terpisah sebagai argumen tunggal untuk sbt.
in Globalalih-alih in ThisBuildjuga bekerja dengan baik dengan sub proyek — tetapi mengapa yang terakhir lebih disukai? atau bahkan?
scalacOptions := Seq("-unchecked", "-deprecation")
Tambahkan pengaturan ini ke build.sbt Anda, dan, jika Anda memiliki proyek multi-modul, tambahkan ke pengaturan setiap proyek.
Seiring waktu mengalir solusi baru muncul. Jadi, sekarang Anda dapat menjalankan kembali kompilator scala tanpa mengeluarkan seluruh proyek yang dibangun kembali.
Anda perlu menginstal plugin ensime-sbt :
addSbtPlugin("org.ensime" % "sbt-ensime" % "1.0.0")
Setelah itu Anda bisa menggunakan ensimeCompileOnlytugas untuk mengkompilasi file tunggal. SBT memungkinkan konfigurasi pengaturan setiap tugas, sehingga Anda dapat mengubah hanya untuk tugas-tugas itu:
set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation"
ensimeCompileOnly src/main/scala/MyFile.scala
-deprecationadalah ide yang buruk. Ensime adalah untuk mendukung anotasi on-the-fly dalam editor. Selain itu, Ensime sendiri memiliki sejumlah masalah dengan beberapa jenis proyek (terutama yang banyak menggunakan makro).