Jak „ponownie uruchomić z -deprecation po szczegóły” w sbt?


Odpowiedzi:


217

sbt shell

Będąc w powłoce sbt (jeśli nie chcesz zmieniać build.sbt):

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

W związku z in ThisBuild, setstosuje ustawienia również do wszystkich podprojektów.

Wiersz poleceń

Możesz również uruchomić powyższe polecenie jako pojedyncze polecenie w wierszu poleceń.

sbt '; set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") ; compile' 

Sztuczka polega na użyciu ;(średników) do oddzielania poleceń i '(znaczników) do dołączania wszystkich ;oddzielonych poleceń jako pojedynczego argumentu do sbt.


2
@retronym: in Globalzamiast tego in ThisBuilddziała równie dobrze z podprojektami - ale dlaczego ten drugi jest preferowany? czy to nawet?
Erik Kaplun

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

Dodaj to ustawienie do pliku build.sbt, a jeśli masz projekt wielomodułowy, dodaj je do ustawień każdego projektu.


-2

W miarę upływu czasu pojawiają się nowe rozwiązania. Więc teraz możesz ponownie uruchomić kompilator scala bez konieczności ponownego kompilowania projektu.

Musisz zainstalować wtyczkę ensime-sbt :

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

Następnie możesz użyć ensimeCompileOnlyzadania do skompilowania pojedynczego pliku. SBT zezwala na konfigurację ustawień zadań, więc możesz zmienić tylko te zadania:

set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation"
ensimeCompileOnly src/main/scala/MyFile.scala

1
Dodanie Ensime tylko po to, by dostać, -deprecationto okropny pomysł. Ensime służy do obsługi adnotacji w locie w edytorach. Poza tym sam Ensime ma wiele problemów z niektórymi rodzajami projektów (zwłaszcza tymi, które intensywnie używają makr).
Zac

Wtyczka ensime jest małym dodatkiem do grubego serwera językowego. Możesz go używać osobno. Albo po prostu skopiować z niego jakąś funkcjonalność.
ayvango
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.