Come "rieseguire con -deprecation per i dettagli" in sbt?


168

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?)


2
Domanda simile (che include la risposta alla tua domanda) presso stackoverflow.com/questions/9415962/...
Kristian Domagala

Risposte:


217

conchiglia

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, setapplica le impostazioni anche a tutti i sottoprogetti.

Riga di comando

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


2
@retronym: in Globalinvece di in ThisBuildfunzionare ugualmente bene con i sottoprogetti, ma perché è preferibile quest'ultimo? o è pari?
Erik Kaplun,

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

Aggiungi questa impostazione a build.sbt e, se hai un progetto multi-modulo, aggiungilo alle impostazioni di ogni progetto.


-2

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' ensimeCompileOnlyattività 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

1
Aggiungere Ensime solo per ottenere -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).
Zac,

Il plugin ensime è un piccolo compagno del fat language server. Potresti usarlo separatamente. O potrebbe semplicemente copiare alcune funzionalità da esso.
Ayvango,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.