Yanıtlar:
SBT Kabuğundayken (eğer değiştirmek istemiyorsanız build.sbt
):
$ sbt
> set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation")
> compile
> exit
Nedeniyle in ThisBuild
, set
sıra, tüm alt projeler ayarları uygular.
Yukarıdaki komutu komut satırında tek bir komut olarak da çalıştırabilirsiniz.
sbt '; set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") ; compile'
Hile, ;
komutları ayırmak için (noktalı virgül) ve tüm ayrılmış komutları sbt'ye tek bir argüman olarak '
dahil etmek için (noktalı virgül) kullanmaktır ;
.
in Global
bunun yerine in ThisBuild
alt projelerle de eşit derecede iyi çalışır - ancak ikincisi neden tercih edilir? hatta öyle mi?
scalacOptions := Seq("-unchecked", "-deprecation")
Bu ayarı build.sbt dosyasına ekleyin ve çok modüllü bir projeniz varsa her projenin ayarlarına ekleyin.
Zaman geçtikçe yeni çözümler ortaya çıkıyor. Böylece, tüm proje yeniden yapılandırmasını yayınlamadan scala derleyicisini yeniden çalıştırabilirsiniz.
Ensime-sbt eklentisini yüklemeniz gerekir :
addSbtPlugin("org.ensime" % "sbt-ensime" % "1.0.0")
Bundan sonra ensimeCompileOnly
görevi tek bir dosyayı derlemek için kullanabilirsiniz . SBT görev başına ayarlar yapılandırmasına izin verir, böylece yalnızca bu görevler için değişiklik yapabilirsiniz:
set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation"
ensimeCompileOnly src/main/scala/MyFile.scala
-deprecation
için Ensime eklemek korkunç bir fikir. Ensime, editörlerde anında ek açıklamaları desteklemek içindir. Bunun yanı sıra, Ensime'in kendisinin bazı tür projelerle (özellikle makroları yoğun olarak kullananlarla) bir dizi sorunu vardır.