I want to be able to use -Xfatal-warnings
and -Ywarn-unused-import
, the problem is that the compiler is triggering an error on the file which contains the play routes for my application:
[error] /path/to/app/conf/routes: Unused import
[error] /path/to/app/conf/routes: Unused import
[error] /path/to/app/conf/routes:1: Unused import
[error] GET /document/:id my.app.controllers.MyController.getById(id: Int)
same goes for other routes.
Is it possible maybe to tell scalac to ignore a file?
Scala version is 2.11.8
.
I've come up with a working solution for Scala 2.13.7 (no need for any plugin) for Play 2.8.11. Take a look on those examples and adjust to your needs:
scalacOptions ++= Seq(
"-Wconf:cat=unused-imports&site=.*views.html.*:s", // Silence import warnings in Play html files
"-Wconf:cat=unused-imports&site=<empty>:s", // Silence import warnings on Play `routes` files
"-Wconf:cat=unused-imports&site=router:s", // Silence import warnings on Play `routes` files
"-Wconf:cat=unused-imports&site=v1:s", // Silence import warnings on Play `v1.routes` files
"-Wconf:cat=unused-imports&site=v2:s", // Silence import warnings on Play `v2.routes` files
"-Wconf:cat=unused-imports&site=views.v1:s", // Silence import warnings on Play `views.v1.routes` files
"-Wconf:cat=deprecation&site=controllers\\.v1.*&origin=scala.util.Either.right:s", // Silence deprecations in generated Controller classes
"-Wconf:cat=deprecation&site=.*v1.Routes.*&origin=scala.util.Either.right:s"
) // Silence deprecations in generated Controller classes
If you want to understand more, take a look on this documentation and add verbose information on the compiler messages output
scalacOptions += "-Wconf:any:wv",
Pro tip: fail compilation of unused only within CI
scalacOptions ++= {
// Mark unused errors as info for local development (due to -Werror usage)
if (insideCI.value) Seq.empty else Seq("-Wconf:cat=unused:i")
},