3

我正在对我的代码空间执行 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

在项目/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="error" ...>in scalastyleGenerateConfig,我不确定这是正确的方法。

非常感谢

4

2 回答 2

13

我能想到的实际上只有两个简单的选择。

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

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

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

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

于 2016-09-12T21:22:30.137 回答
1

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

  1. scalastyleFailOnWarning 默认值为 false
  2. scalastyleFailOnError 默认为真(文档说假,但代码说真)
于 2021-02-03T15:44:48.397 回答