首页 > 解决方案 > 如何在 SBT 控制台中禁用警告

问题描述

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

如何在 SBT 控制台中禁用此无用的警告,同时将此检查保留在 sbt compile 中?
我想我应该添加类似的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(

标签: scalasbt

解决方案


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

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

这是摘录自cats关联

更新:

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

有一些选项会从 scalac 生成未使用的导入警告。该cats库正在使用特定于未使用的导入警告 ( -Ywarn-unused-import, -Ywarn-unused:imports) 的选项,因此,它只是过滤掉了那些。

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


推荐阅读