sbtで警告を全部再度表示するprintWarningsというtask

アドベントカレンダー空いてたのと、以前tweetしたけど便利な割にあまり知られてない気がするので、blogにも書いておきます。

qiita.com

https://github.com/sbt/sbt/blob/33019a6453b4cad48c4949e70a832fcb5c61452c/main/src/main/scala/sbt/Keys.scala#L232

sbtのshellでprintWarningsとするだけです。sbtは以前出した警告も全部内部で保持しているので、cleanして再度compileなどしなくても、これで全部の警告が表示されます。

よほど凝ったことしたい場合でない限り、標準のこれで十分なので、このためだけに外部のsbt plugin使う必要はないはずです。

(自作の「警告diff表示plugin」は、これでは不十分なので独自に頑張ってますが https://github.com/xuwei-k/sbt-warning-diff )

全部といっても、あくまでデフォルトは Compile に紐づいたものなので、 src/main/scala の方しか出ません。

test側も出したいなら Test/printWarnings も実行してください。

必要に応じて、main側とtest側の両方を一気に実行して表示する printWarningsAll 的な独自taskかaliasを作っておいてもいいかもしれません。