SBB'de "Ayrıntılar için -deprecation ile yeniden çalıştırmak" nasıl?


Yanıtlar:


217

sbt kabuğu

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, setsıra, tüm alt projeler ayarları uygular.

Komut satırı

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 ;.


2
@retronym: in Globalbunun yerine in ThisBuildalt projelerle de eşit derecede iyi çalışır - ancak ikincisi neden tercih edilir? hatta öyle mi?
Erik Kaplun

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

Bu ayarı build.sbt dosyasına ekleyin ve çok modüllü bir projeniz varsa her projenin ayarlarına ekleyin.


-2

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 ensimeCompileOnlygö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

1
Sadece almak -deprecationiç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.
Zac

ensime eklentisi, yağ dili sunucusuna küçük bir arkadaştır. Ayrı olarak kullanabilirsiniz. Ya da sadece bazı işlevleri kopyalayabilir.
ayvango
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.