我使用scalaxb-sbt插件生成代码,在编译时会生成大量警告消息。有没有办法隐藏生成代码或包的编译警告?
答案 0 :(得分:4)
Scala 编译器的最新版本集成了消音器插件,请参阅 configurable warnings。
所以现在您不需要任何插件,只需将以下行添加到 build.sbt
:
ThisBuild / scalacOptions += "-Wconf:src=src_managed/.*:silent"
使用此选项将禁止对位于源代码树中任何位置名为 src_managed
的目录下的生成代码发出警告。
这解决了我使用 zio-grpc
生成的代码的问题,其中编译器发出 parameter value evidence$3 in method live is never used
之类的警告(添加此信息只是为了更好的可搜索性)。
答案 1 :(得分:3)
在您的sbt控制台中,您可以尝试以下操作:
set logLevel in compile := Level.Error
或最终set logLevel in sourceGenerators := Level.Error
并尝试不同的设置。一旦您满意,您可以在build.sbt
。
更多详细信息可以在sbt文档中找到:http://www.scala-sbt.org/release/docs/Howto/logging.html
答案 2 :(得分:2)
silencer编译器插件可禁止显示编译器警告。它支持按路径过滤文件。这将从警告中过滤掉所有生成的文件:
scalacOptions += "-P:silencer:pathFilters=src_managed"
答案 3 :(得分:1)
将代码放在子项目中,并在该项目中以不同方式设置scalacOptions
?这是否有效取决于scalac中是否存在支持以抑制您正在获得的特定类型的警告。请参阅示例https://issues.scala-lang.org/browse/SI-1781。您需要准确压制什么样的警告?某些警告,例如未经检查的警告,可以通过例如@unchecked
,无需进行子项目。
答案 4 :(得分:1)
我发现我需要在我的sbt控制台会话中执行set logLevel in Compile := Level.Error
才能使其正常工作。这是C
中的大写Compile
。这是sbt版本0.13.11
。这也是为了关闭所有警告。