使 sbt 构建在 scalastyle 警告上失败

make sbt build fail on scalastyle warnings

我正在对我的代码 space 执行 scalastyle 检查,参考 http://www.scalastyle.org/sbt.html

在build.sbt中:

// scalastyle check
lazy val compileScalastyle = taskKey[Unit]("compileScalastyle")
compileScalastyle := org.scalastyle.sbt.ScalastylePlugin.scalastyle.in(Compile).toTask("").value
(compile in Compile) <<= (compile in Compile) dependsOn compileScalastyle

在 project/plugins.sbt:

addSbtPlugin("org.scalastyle" %% "scalastyle-sbt-plugin" % "0.8.0")

当我运行sbt compile时,scalastyle正在生成[warning] ***./utils/ConfigManager.scala: File must end with newline character,但编译仍然成功

有没有办法让 sbt compile 在 scalastyle 警告 上失败?

我只是将 <check level="warning" ...> 中的所有 <check level="warning" ...> 更改为 scalastyleGenerateConfig 中的 <check level="error" ...>,我不确定这是正确的做法。

非常感谢

我真的只有两个简单的选择。

显而易见的一个是更改您的 scalastyle 配置,以便您想要导致构建失败的警告是错误。这就是 scalastyle 配置的真正用途。如果您希望某事被视为错误,请将其称为错误! <check level="error" ...> 不会让您头疼。

否则,在 sbt 中将警告升级为错误的唯一简单方法是使用 -Xfatal-warnings 标志:

scalacOptions ++= Seq("-Xfatal-warnings")

但这会将项目中的所有 警告转换为错误,无论是否是 scalastyle。

sbt插件还有docs中提到的2个相关配置:

  1. scalastyleFailOnWarning 具有默认值 false
  2. 默认为 true 的 scalastyleFailOnError(文档说 false 但代码说 true)