keypoint keypoint - 2 months ago 29
Scala Question

make sbt build fail on scalastyle warnings

I'm enforcing scalastyle check to my code space, referring

in build.sbt:

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

in project/plugins.sbt:

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

When I run
sbt compile
, scalastyle is generating
[warning] ***./utils/ConfigManager.scala: File must end with newline character
, but compile still succeeded.

Is there a way to make
sbt compile
fail on scalastyle warnings?

I just change all
<check level="warning" ...>
to be
<check level="error" ...>
, I'm not sure this is the right way to do it.

Thanks a lot

m-z m-z

There are really only two simple options that I can think of.

The obvious one is to change your scalastyle config so that the warnings you want to cause build failure are errors. That's really what the scalastyle config is for. If you want something to be treated as an error, call it one! <check level="error" ...> will give you the least amount of headache.

Otherwise, the only simple way to promote a warning to an error in sbt is to use the -Xfatal-warnings flag:

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

But that will convert all warnings in your project to errors, scalastyle or not.