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.
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.
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
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ść.
Odpowiedzi:
sbt shell
Będąc w powłoce sbt (jeśli nie chcesz zmieniać
build.sbt
):W związku z
in ThisBuild
,set
stosuje ustawienia również do wszystkich podprojektów.Wiersz poleceń
Możesz również uruchomić powyższe polecenie jako pojedyncze polecenie w wierszu poleceń.
Sztuczka polega na użyciu
;
(średników) do oddzielania poleceń i'
(znaczników) do dołączania wszystkich;
oddzielonych poleceń jako pojedynczego argumentu do sbt.źródło
in Global
zamiast tegoin ThisBuild
działa równie dobrze z podprojektami - ale dlaczego ten drugi jest preferowany? czy to nawet?Dodaj to ustawienie do pliku build.sbt, a jeśli masz projekt wielomodułowy, dodaj je do ustawień każdego projektu.
źródło
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 :
Następnie możesz użyć
ensimeCompileOnly
zadania do skompilowania pojedynczego pliku. SBT zezwala na konfigurację ustawień zadań, więc możesz zmienić tylko te zadania:źródło
-deprecation
to 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).