Wartremover 仍然在排除的播放路线文件中报告疣
Wartremover still reports warts in excluded Play routes file
我正在尝试将 Wartremover 添加到我的 Play 项目中,但它一直在报告路由文件中的缺陷,即使我将其排除也是如此。我正在使用 Wartremover 0.14 和 Play Framework 2.4.6。
我的相关部分build.sbt:
wartremoverErrors ++= Warts.all
wartremoverExcluded += crossTarget.value / "routes" / "main" / "router" / "Routes.scala"
(请注意,我必须采用与 this question 中建议的答案不同的方式。)
如果没有 wartremoverExcluded
行,Wartremover 会在我的路由文件中报告 13 个错误。有了它,它仍然报告两个:一个关于 Wart.Var
,一个关于 Wart.ExplicitImplicitTypes
。我也可以排除这些缺点,但使用 Warts.allBut(Wart.Var, Wart.ExplicitImplicitTypes)
,但我不想这样做,因为这会从我的整个代码库中排除这些缺点,而不仅仅是路由文件。
有没有办法让 Wartremover 停止报告路由文件中的这些缺陷,而不排除每个文件的这些缺陷?
这对我有用:
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是不是一样)
尝试添加这些:
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 1.4+:
wartremoverExcluded ++= (Compile / routes).value
或者你可以试试这个 sbt plugin I wrote to do it for you。
我正在尝试将 Wartremover 添加到我的 Play 项目中,但它一直在报告路由文件中的缺陷,即使我将其排除也是如此。我正在使用 Wartremover 0.14 和 Play Framework 2.4.6。
我的相关部分build.sbt:
wartremoverErrors ++= Warts.all
wartremoverExcluded += crossTarget.value / "routes" / "main" / "router" / "Routes.scala"
(请注意,我必须采用与 this question 中建议的答案不同的方式。)
如果没有 wartremoverExcluded
行,Wartremover 会在我的路由文件中报告 13 个错误。有了它,它仍然报告两个:一个关于 Wart.Var
,一个关于 Wart.ExplicitImplicitTypes
。我也可以排除这些缺点,但使用 Warts.allBut(Wart.Var, Wart.ExplicitImplicitTypes)
,但我不想这样做,因为这会从我的整个代码库中排除这些缺点,而不仅仅是路由文件。
有没有办法让 Wartremover 停止报告路由文件中的这些缺陷,而不排除每个文件的这些缺陷?
这对我有用:
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是不是一样)
尝试添加这些:
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 1.4+:
wartremoverExcluded ++= (Compile / routes).value
或者你可以试试这个 sbt plugin I wrote to do it for you。