Bagaimana "menjalankan kembali dengan -deprecation for details" di sbt?


168

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?)


2
Pertanyaan serupa (yang mencakup jawaban atas pertanyaan Anda) di stackoverflow.com/questions/9415962/…
— Kristian Domagala

Jawaban:


217

sbt shell

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.

Garis komando

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.


2
@retronym: in Globalalih-alih in ThisBuildjuga bekerja dengan baik dengan sub proyek — tetapi mengapa yang terakhir lebih disukai? atau bahkan?
— Erik Kaplun

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

Tambahkan pengaturan ini ke build.sbt Anda, dan, jika Anda memiliki proyek multi-modul, tambahkan ke pengaturan setiap proyek.


-2

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

1
Menambahkan Ensime hanya untuk mendapatkan -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).
— Zac

Plugin ensime adalah pendamping kecil ke server bahasa yang gemuk. Anda bisa menggunakannya secara terpisah. Atau bisa juga menyalin beberapa fungsi darinya.
— ayvango
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.