2016-01-14 24 views
4

我試圖將Wartremover添加到我的Play項目中,但它始終在報告路徑文件中報告疣,即使我排除它。我使用的是Wartremover 0.14和Play Framework 2.4.6。Wartremover仍然報告排除播放路線文件中的疣

相關部分從我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停止在路徑文件中報告這些疣,而不會爲每個文件排除這些疣?

回答

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 plugin I wrote to do it for you

0

這個工作對我來說:

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相同)

+0

我沒有「src_managed」子目錄。我猜Play 2.4.6會有不同:)。 – jqno

相關問題