0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kotlin + Gradle 環境に Ktlint を簡単に導入する方法

Posted at

Ktlint とは

Ktlint とは、Kotlin コードの静的解析および自動フォーマットツールです。
Kotlin のコードスタイルガイドラインに基づいて、コードのフォーマットや品質をチェックし、一貫性のあるコードを維持するために使います。
CI/CD パイプラインに組み込んで、コードがリポジトリにプッシュされる前にルール違反を検出し、自動修正することも可能です。

前提条件

Spring Initializr で下記のように設定したプロジェクトがあることを前提とします
※ 2025-03 現在の情報を元に記載しています。

Project: Gradle - Kotlin
Language: Kotlin
Spring Boot: 3.4.3
Packaging: Jar
Java: 21

上記以外はデフォルトのままで OK。

ktlint の導入

Gradle プラグインの選定

Ktlint > Installation > Integrations > Gradle integration を参照すると、いくつかのプラグインが紹介されていますが、今回は jlleitschuh/ktlint-gradle を使用します。
選定理由は以下のとおりです。

  • Kotlin に特化しており、シンプルな構成で導入しやすい
  • Gradle の公式プラグインレジストリに登録されているため、信頼性が高い
  • 定期的にメンテナンスされており、最新の Gradle や Kotlin に対応している

build.gradle.kts に下記の設定を追加する

plugins {
    id("org.jlleitschuh.gradle.ktlint") version "12.2.0"   // 最新バージョンを指定
}

ktlint {
    version.set("1.5.0")   // 最新バージョンを指定
    verbose.set(true)

    reporters {
        reporter(org.jlleitschuh.gradle.ktlint.reporter.ReporterType.CHECKSTYLE)
    }
}

プラグインのバージョンを指定する

最新バージョンは、github.com/jlleitschuh/ktlint-gradle から確認できます。

Ktlint のバージョンを指定する

最新バージョンは、pinterest.github.io/ktlint から確認できます。

設定ごとのデフォルト値

詳細はKtlintExtension から確認できます。

設定名 デフォルト値 説明
version 1.0.1 ktlint のバージョン
relative false レポートに相対パスを有効にするかどうか
verbose false ktlint の実行結果を詳細に表示するかどうか
debug false デバッグモードを有効にするかどうか
android false Android プロジェクトかどうか
outputToConsole true ktlint の結果をコンソールに出力するかどうか
coloredOutput true コンソール出力にカラーを有効にするかどうか
outputColorName AUTO ターミナル出力する色の指定
ignoreFailures false 警告があってもビルドを続行するかどうか
enableExperimentalRules false 実験的なルールを有効にするかどうか
reporters [ReporterType.PLAIN] 出力レポーターの形式を指定する

[ReporterType.PLAIN]: PLAIN(標準テキスト)形式
(人間が読みやすい形式 で違反を表示)
[ReporterType.CHECKSTYLE]: Checkstyle 形式
(CI/CD パイプラインやツール(SonarQube, Jenkins など)で解析しやすい)

※ 2025-03 現在の情報を元に記載しています。最新情報は各公式ドキュメントを参照してください。

ktlint の実行

Gradle タスクを実行することで、ktlint が実行されます。

./gradlew ktlintFormat   # コードを自動フォーマット
./gradlew ktlintCheck   # コードのスタイルチェック

おわりに

これまで Ktlint の導入方法が分からず後回しにしていましたが、今回しっかりと向き合い、無事に導入することができました。
一度設定してしまえば、次のプロジェクトまで触れる機会が少ないため、忘れないうちに記事としてまとめました。
同じように Ktlint の導入で悩んでいる方の参考になれば幸いです。

参考

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?