当我编译Scala代码时,通过运行sbt compile
,SBT说:
$ sbt compile
...
[warn] there were 5 deprecation warnings; re-run with -deprecation for details
...
我该怎么做? (从SBT内部?)
答案 0 :(得分:211)
在sbt shell中(如果你不想改变你的build.sbt
):
$ sbt
> set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation")
> compile
> exit
由于in ThisBuild
,set
也会将设置应用于所有子项目。
您也可以在命令行上将上述命令作为单个命令运行。
sbt '; set scalacOptions in ThisBuild ++= Seq("-unchecked", "-deprecation") ; compile'
诀窍是使用;
(分号)来分隔命令和'
(ticks)以包含所有;
- 分隔的命令作为sbt的单个参数。
答案 1 :(得分:21)
scalacOptions := Seq("-unchecked", "-deprecation")
将此设置添加到build.sbt中,如果您有多模块项目,请将其添加到每个项目的设置中。
答案 2 :(得分:-1)
这对我有用。
sbt compile -deprecation
注意:看来-deprecation在sbt控制台中不起作用。
答案 3 :(得分:-2)
随着时间流逝,出现了新的解决方案。所以,现在你可以在不发出整个项目重建的情况下重新运行scala编译器。
您需要安装ensime-sbt plugin:
addSbtPlugin("org.ensime" % "sbt-ensime" % "1.0.0")
之后,您可以使用ensimeCompileOnly
任务来编译单个文件。 SBT允许每个任务设置配置,因此您只能更改该任务:
set scalacOptions in (Compile, EnsimeKeys.ensimeCompileOnly) += "-deprecation"
ensimeCompileOnly src/main/scala/MyFile.scala