LoginSignup
0
0

playframeworkのScalaテンプレート(*.scala.html)、routesに対する不適切なコンパイル警告を消す(unused import, never used)

Last updated at Posted at 2023-06-13

playframeworkのバージョンアップ(->2.8)にともなって、Scalaを2.12.16にバージョンアップしたところ、冗長かつ間違った警告が大量に出力されるようになりました。
(Scalaの2.11のどこかでScalaコンパイラの仕様が変わったようです)

この警告出力を抑止するための設定です。

不適切な警告例

たとえばScalaテンプレート(*.scala.html)において、以下のようなケースがあります。

  • @importに対して。利用しているにも関わらず!!
  • 引数定義の@(引数)に対しての警告
  • 先頭のコメント行(@***@)に対して

またroutesファイルでも色々とでます。

設定方法

こちらに答えが記載されていました。Play2.8、Scala2.13向けのようですが。Scala2.12でも意図した結果を得られました。

build.sbtに以下を記述すればOKです。(scalacOptions := Seq()としているので上書きしています)

build.sbt
// =============================
// Disable annoying warning output in sbt
// https://stackoverflow.com/questions/37413032/ywarn-unused-import-triggering-on-play-routes-file
// =============================
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=unused-imports&src=.*routes.*:s",
    "-Wconf:cat=unused-imports&src=.*html.*:s",
    "-Wconf:cat=unused-imports&src=.*txt.*:s",
    "-Wconf:cat=unused&site=.*views.html.*:s", // Silence import warnings in Play html files
    "-Wconf:cat=unused&site=<empty>:s", // Silence import warnings on Play `routes` files
    "-Wconf:cat=unused&site=router:s", // Silence import warnings on Play `routes` files
    "-Wconf:cat=unused&site=v1:s", // Silence import warnings on Play `v1.routes` files
    "-Wconf:cat=unused&site=v2:s", // Silence import warnings on Play `v2.routes` files
    "-Wconf:cat=unused&site=views.v1:s", // Silence import warnings on Play `views.v1.routes` files
    "-Wconf:cat=unused&src=.*routes.*:s",
    "-Wconf:cat=unused&src=.*html.*:s",
    "-Wconf:cat=unused&src=.*txt.*:s",
    "-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"
)
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0