如何禁用 SBT 控制台中的警告

use*_*167 2 scala sbt

我是 SBT 新手,我喜欢在 SBT 控制台中调试 scala 源代码。但控制台总是像<console>:65: warning: Unused import每个命令行一样重复警告。真烦人。

如何在 SBT 控制台中禁用此无用警告,同时在 sbt 编译中保留此检查?
我想我应该添加build.sbt类似的内容scalacOptions in console := ???,但不确定它到底应该是什么。

[更新]
我还没有完成关于 sbt 的教程,所以我build.sbt从一些示例项目中复制了。我添加了scalacOptions in (Compile, console) ...,但是还是不行。

    scalacOptions in Compile ++= Seq("-deprecation", "-feature", "-unchecked", "-Xlog-reflective-calls", "-Xlint"),
    scalacOptions in (Compile, console) ~= { _.filterNot(Set("-Ywarn-unused-import", "-Ywarn-unused:imports")) },
    javacOptions in Compile ++= Seq("-Xlint:unchecked", "-Xlint:deprecation"),
    javaOptions in run ++= Seq("-Xms256m", "-Xmx2048m", "-Djava.library.path=./target/native"),
    libraryDependencies ++= Seq(
Run Code Online (Sandbox Code Playgroud)

yhm*_*yhm 6

对于像这样的常见问题,您可以尝试查看build.sbt开源项目中的文件,看看他们是如何处理的。

scalacOptions in (Compile, console) ~= { _.filterNot(Set("-Ywarn-unused-import", "-Ywarn-unused:imports")) }
Run Code Online (Sandbox Code Playgroud)

这是摘录自cats关联

更新:

我上面粘贴的代码是关于在运行命令 ( ) 时过滤掉src/main( ) 下代码中的特定 scalac 标志。Compileconsoleconsole

有几个选项可以从 scalac 生成未使用的导入警告。该cats库使用特定于未使用的导入警告(-Ywarn-unused-import-Ywarn-unused:imports)的选项,因此,它仅过滤掉这些警告。

在您的情况下,生成警告的标志是-Xlint,它也会生成许多其他类型的警告。Set您可以删除和 add中的标志-Xlint,它将停止生成未使用的导入警告。但是,它也将停止生成其他警告。(不过这应该没什么大不了的,因为它只是重复。)