如何在sbt中“使用-deprecation重新运行以获取详细信息”?


Answers:


217

sbt外壳

在sbt shell中(如果您不想更改build.sbt):

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

由于的缘故in ThisBuildset也将设置应用于所有子项目。

命令行

您也可以在命令行上将以上命令作为单个命令运行。

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

诀窍是使用;(分号)分隔命令,并使用'(刻度)将所有分隔的;命令作为sbt的单个参数包含在内。


2
@retronym:in Global而不是in ThisBuild同样可以在子项目中很好地工作,但是为什么后者更受欢迎?甚至是?
埃里克·卡普伦


-2

随着时间的流逝,出现了新的解决方案。因此,现在您可以重新运行scala编译器,而无需发出整个项目的重建信息。

您需要安装ensime-sbt插件

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

之后,您可以使用该ensimeCompileOnly任务来编译单个文件。SBT允许按任务设置配置,因此您只能更改该任务:

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

1
仅添加Ensime -deprecation就是一个糟糕的主意。Ensime用于支持编辑器中的即时注释。除此之外,Ensime本身在某些类型的项目中也存在很多问题(最值得注意的是那些大量使用宏的项目)。
扎克

ensime插件是胖语言服务器的一个小伴侣。您可以单独使用它。或者可以从中复制一些功能。
ayvango
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.