Wartremover по-прежнему сообщает о бородавках в файле исключенных маршрутов воспроизведения.

Я пытаюсь добавить Wartremover в свой проект Play, но он продолжает сообщать о бородавках в файле маршрутов, даже если я его исключаю. Я использую Wartremover 0.14 и Play Framework 2.4.6.

Соответствующая часть из моего build.sbt:

wartremoverErrors ++= Warts.all
wartremoverExcluded += crossTarget.value / "routes" / "main" / "router" / "Routes.scala"

(Обратите внимание, что я должен сделать это не так, как предлагают ответы в этом вопросе.)

Без wartremoverExcluded строка, Wartremover сообщает о 13 ошибках в моем файле маршрутов. С этим, это все еще сообщает два: один о Wart.Var и один о Wart.ExplicitImplicitTypes, Я тоже могу исключить эти бородавки, но используя Warts.allBut(Wart.Var, Wart.ExplicitImplicitTypes), но я бы предпочел этого не делать, потому что это исключает эти бородавки из всей моей кодовой базы, а не только из файла маршрутов.

Есть ли способ заставить Wartremover перестать сообщать об этих бородавках в файле маршрута, не исключая эти бородавки для каждого файла?

2 ответа

Решение

Попробуйте добавить это:

wartremoverExcluded += crossTarget.value / "routes" / "main" / "router" / "Routes.scala"
wartremoverExcluded += crossTarget.value / "routes" / "main" / "router" / "RoutesPrefix.scala"
wartremoverExcluded += crossTarget.value / "routes" / "main" / "controllers" / "ReverseRoutes.scala"
wartremoverExcluded += crossTarget.value / "routes" / "main" / "controllers" / "javascript" / "JavaScriptReverseRoutes.scala"

Изменить: Прошло более года с тех пор, как я впервые написал этот ответ. wartremoverExcluded был изменен с SettingKey к TaskKey, так что вы можете упростить вышесказанное до:

wartremoverExcluded ++= routes.in(Compile).value

Или вы можете попробовать этот плагин sbt, который я написал, чтобы сделать это для вас.

Это работает для меня:

wartremoverExcluded ++= Seq(
  baseDirectory.value / "target" / "scala-2.11" / "src_managed" / "main" / "routes_routing.scala",
  baseDirectory.value / "target" / "scala-2.11" / "src_managed" / "main" / "routes_reverseRouting.scala"
)

(на самом деле я играю 2.3, не уверен, что на 2.4.6 то же самое)

Другие вопросы по тегам