我是 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)
对于像这样的常见问题,您可以尝试查看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,它将停止生成未使用的导入警告。但是,它也将停止生成其他警告。(不过这应该没什么大不了的,因为它只是重复。)