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