gradle の detekt と detektMain の違い
./gradlew detekt
では一件も検出されないが、detektMain だと検出されまくるという時がある。
一般的な checkstyle などのプラグインではcheckstyleMain は checkstyle をメインソースセットに対してだけ実行するという意味なので、checkstyleMain と checkstyleTest を足したものにだいたい等しいのだが、detekt の場合は違う。
detektMain/detektTest の時は Type Resolution が有効になる という違いがある。
detekt の組み込みのルールの中にも、Type Resolution が有効じゃないと動かないテストも多いので注意が必要(NullableToStringCall など)。
./gradlew detekt
で CI していると./gradlew detektMain
では通らないコードができあがる。