Scala 如何使SBT不报告生成代码的编译警告?
我使用scalaxb sbt插件生成代码,该插件在编译时会生成大量警告消息。有没有办法隐藏生成的代码或程序包的编译警告?在sbt控制台中,您可以尝试以下操作:Scala 如何使SBT不报告生成代码的编译警告?,scala,sbt,Scala,Sbt,我使用scalaxb sbt插件生成代码,该插件在编译时会生成大量警告消息。有没有办法隐藏生成的代码或程序包的编译警告?在sbt控制台中,您可以尝试以下操作: 在compile中设置logLevel:=Level.Error或最终在sourceGenerators中设置logLevel:=Level.Error 并用不同的设置进行实验。一旦您满意,就可以在build.sbt中应用此设置 更详细的信息可以在sbt文档中找到:将代码放入子项目,并在该项目中以不同的方式设置scalacOptions?
在compile中设置logLevel:=Level.Error
或最终在sourceGenerators中设置logLevel:=Level.Error
并用不同的设置进行实验。一旦您满意,就可以在build.sbt
中应用此设置
更详细的信息可以在sbt文档中找到:将代码放入子项目,并在该项目中以不同的方式设置
scalacOptions
?这是否有效取决于scalac中是否存在用于抑制您收到的特定类型警告的支持。例如,见。您需要确切地抑制哪些类型的警告?某些警告,如未经检查的警告,可以使用@unchecked
抑制,而无需执行子项目操作。我发现我需要在编译中设置日志级别:=Level.Error以使其正常工作。这是在Compile
中使用大写字母C
。这是sbt版本的0.13.11
。不过,这也可以关闭所有警告。编译器插件允许抑制编译器警告。它支持按路径过滤文件。这将从警告中筛选出所有生成的文件:
scalacOptions+=“-P:signer:pathFilters=src\u managed”
适用于Scala 2.12.13+或2.13.2+
Scala编译器的最新版本集成了消音器插件,请参阅。因此,现在您不需要任何插件,只需将以下行添加到
build.sbt
:
ThisBuild/scalacOptions+=“-Wconf:src=src\u managed/*:silent”
使用此选项将禁止对位于源代码树中名为src_managed
目录下的生成代码发出警告
这就解决了我在由
zio grpc
生成的代码中遇到的问题,其中编译器发出了警告,如参数值证据$3 in method live从未使用过(添加此信息只是为了更好的搜索性)。关闭了所有警告,我要求有选择地这样做。我还需要添加我的项目,如:set logLevel in search in Compile:=Level.Error
Awesome,感谢文档参考。