Como "reexecutar com -deprecation for details" no sbt?


Respostas:


217

sbt shell

Enquanto estiver no shell sbt (se você não quiser alterar o seu build.sbt):

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

Devido a in ThisBuild, setaplica as configurações a todos os subprojetos também.

Linha de comando

Você também pode executar o procedimento acima como um único comando na linha de comando.

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

O truque é usar ;(ponto e vírgula) para separar comandos e '(ticks) para incluir ;comandos todos -separados como um único argumento para sbt.


2
@retronym: em in Globalvez de in ThisBuildtambém funciona igualmente bem com subprojetos - mas por que o último é preferido? ou é mesmo?
Erik Kaplun

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

Adicione essa configuração ao seu build.sbt e, se você tiver um projeto com vários módulos, adicione-o às configurações de todos os projetos.


-2

Conforme o tempo flui, novas soluções são surgidas. Portanto, agora você pode executar novamente o compilador scala sem emitir a reconstrução do projeto inteiro.

Você precisa instalar o plugin ensime-sbt :

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

Depois disso, você poderá usar a ensimeCompileOnlytarefa para compilar um único arquivo. O SBT permite a configuração de configurações por tarefas, para que você possa alterar apenas essas tarefas:

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

1
Adicionar Ensime apenas para obter -deprecationé uma péssima idéia. O Ensime é para apoiar anotações on-the-fly em editores. Além disso, o próprio Ensime tem uma série de problemas com alguns tipos de projetos (principalmente aqueles que usam muito as macros).
Zac

O ensime plugin é um pequeno companheiro para o servidor de idiomas fat. Você pode usá-lo separadamente. Ou poderia apenas copiar algumas funcionalidades dele.
ayvango
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.