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.