Quando compilo il codice Scala, eseguendo sbt compile
, SBT dice:
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
Come lo faccio? (Dall'interno di SBT?)
Quando compilo il codice Scala, eseguendo sbt compile
, SBT dice:
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
Come lo faccio? (Dall'interno di SBT?)
Risposte:
Mentre sei in shell sbt (se non vuoi cambiare il tuo build.sbt
):
$ sbt
> set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation")
> compile
> exit
A causa di in ThisBuild
, set
applica le impostazioni anche a tutti i sottoprogetti.
È inoltre possibile eseguire quanto sopra come un singolo comando sulla riga di comando.
sbt '; set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") ; compile'
Il trucco è usare ;
(punti e virgola) per separare comandi e '
(tick) per includere tutti i ;
comandi separati come un singolo argomento da sbt.
in Global
invece di in ThisBuild
funzionare ugualmente bene con i sottoprogetti, ma perché è preferibile quest'ultimo? o è pari?
scalacOptions := Seq("-unchecked", "-deprecation")
Aggiungi questa impostazione a build.sbt e, se hai un progetto multi-modulo, aggiungilo alle impostazioni di ogni progetto.
Col passare del tempo emergono nuove soluzioni. Quindi, ora è possibile rieseguire il compilatore scala senza eseguire la ricostruzione dell'intero progetto.
Devi installare il plugin ensime-sbt :
addSbtPlugin("org.ensime" % "sbt-ensime" % "1.0.0")
Successivamente è possibile utilizzare l' ensimeCompileOnly
attività per compilare un singolo file. SBT consente la configurazione delle impostazioni per attività, quindi è possibile modificare solo per tali attività:
set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation"
ensimeCompileOnly src/main/scala/MyFile.scala
-deprecation
è un'idea terribile. Ensime è per supportare l'annotazione al volo negli editor. Inoltre, Ensime stessa ha una serie di problemi con alcuni tipi di progetti (in particolare quelli che usano pesantemente le macro).