OSS探訪

Kotlin codeをrule setで静的解析し、baseline・SARIF・Gradle連携でcode smellと品質違反を継続検出する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
7,080
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/03
ページ内ナビ

概要

detektはKotlin向けstatic code analysis toolです。configurable rule set、baseline、source-level suppression、HTML/Markdown/SARIF/Checkstyle report、custom rule extensionを備え、CLIとGradle pluginからcode smellや品質違反を継続的に検出できます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

Kotlin向けrule setでcode smellを静的解析する

complexity、style、naming、exceptions等のrule setを組み合わせ、Kotlin sourceを実行せずにproblematic patternを検出できます。

出典:[1]

baselineとSuppressで既存issueを段階的に管理する

baseline fileで既存findingを抑え、新規issueだけをCIで防ぐ導入が可能です。source側では@Suppress annotationも利用できます。

出典:[1]

HTML・Markdown・SARIF・Checkstyle reportをCIへ出力する

複数report formatを生成でき、SARIFはGitHub Code Scanning等のintegrationへ渡せます。Gradle pluginとCLIのどちらからもautomationへ組み込みやすい構成です。

出典:[1][2]

向いている用途

Kotlin projectへ段階的なquality gateを導入したいteamに向く

既存codebaseはbaselineで開始し、新規違反を止めながらrule設定を徐々に厳しくする運用に適します。

出典:[1]

導入前の確認

stable 1.23.8と2.0 alpha系を混同しない

GitHub上のlatest stableは1.23.8ですが、2026年8月には2.0.0-alpha.6が公開されています。alpha.6はKotlin 2.4.10、Gradle 9.6.1、AGP 9.3.1でbuildされたalphaで、production upgradeとは別枠で評価します。

出典:[3][5][4]

1.23.8のtoolchain compatibilityを既存projectと合わせる

1.23.8はKotlin 2.0.21、Gradle 8.12.1、AGP 8.8.1を基準にしており、JDK 21までのcompatibilityがREADMEに示されています。Gradle/Android projectではplugin versionとtoolchainを同時に確認します。

出典:[1][3]

baselineを永久な除外listにせず定期的に減らす

baselineはlegacy project導入時に有効ですが、既存findingを隠したまま固定すると改善が止まります。rule変更やmajor upgrade時にbaseline差分をreviewし、解消済みentryを削除します。

出典:[1]

参考にした公式資料

  1. [1]detekt 1.23.8 README(2026-10-04)
  2. [2]detekt 1.23.8 CLI documentation(2026-10-04)
  3. [3]detekt 1.23.8 stable release(2026-10-04)
  4. [4]detekt 2.0.0-alpha.6 README(2026-10-04)
  5. [5]detekt 2.0.0-alpha.6 release(2026-10-04)
  6. [6]detekt Apache-2.0 license(2026-10-04)
編集部からの補足

production導入は安定版1.23.8を基準にすると判断しやすい一方、開発は2.0.0 alpha系へ進んでいます。2.0.0-alpha.6はKotlin 2.4.10・Gradle 9.6.1等でbuildされたalpha releaseなので、既存projectを移行する場合はstable upgradeとalpha評価を分けて扱ってください。

3ステップで試す

  1. 1

    detekt 1.23.8のstable CLI JARを取得する

    production baselineとしてlatest stable 1.23.8を固定します。2.0.0-alpha.6は別途検証用として扱います。

    curl -sSLO https://github.com/detekt/detekt/releases/download/v1.23.8/detekt-cli-1.23.8-all.jar
  2. 2

    CLI optionとexit code前提を確認する

    scan対象、config、baseline、report等のoptionを確認します。findingがthreshold以上の場合はCI向けの非0 exit codeになります。

    java -jar detekt-cli-1.23.8-all.jar --help
  3. 3

    最小Kotlin fileをscanする

    custom configなしの最小scanでCLI実行を確認し、その後project側へGradle pluginやbaselineを導入します。

    printf 'fun main() { println("detekt") }\n' > Sample.kt && java -jar detekt-cli-1.23.8-all.jar --input Sample.kt
公式READMEで確認

成長

成長の推移 · 直近30日

7,080 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
55
Open PR
32

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • static
  • analysis
  • kotlin
  • codesmells
  • linter
  • gradle-plugin
  • static-analysis
  • lint
  • code-quality
  • hacktoberfest
Stars
7,080
Forks
874
Watchers
56
Open Issues
157
Contributors
335
所有者種別
Organization
主要言語
Kotlin
ライセンス
Apache-2.0
リポジトリ最終更新
2026/10/03

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?