最近個人の android プロジェクトに ktlint-gradle を追加する作業を行ったのですが、新しいパソコンなのもあって結構手間取ってしまったため備忘録的にまとめました。
(今回のプロジェクトは kotlin ・ Jetpack Compose になっております)
ktlint-gradle プラグインの導入
まずは、プロジェクトに ktlint-gradle のプラグインを導入します。
こちらのサイトを参考に最新の安定バージョンを設定しておけば良いと思います。
libs.versions.toml ・ gradle ・ gradle(:app) にそれぞれを設定していきます。
[versions]
ktlint = "12.1.2"
[plugins]
ktlint = { id = "org.jlleitschuh.gradle.ktlint", version.ref = "ktlint" }
plugins {
...
alias(libs.plugins.ktlint) apply false
}
plugins {
...
alias(libs.plugins.ktlint)
}
前は (app:)gradle に ktlintCheck や ktlintFormat の設定を行っていた気がしたのですが、必要なさそうでした。
./gradlew ktlintFormat の実行
では早速 ktlintFormat を実行しようと思ったのですが、何やらエラーが…
error: java_home is not set and no 'java' command could be found in your path.%0d%0a
どうやら JDK が入っていなかったらしい。そういえばパソコン買い換えたんだったや…
急いで JDK をダウンロードして再起動。
再びコマンドを実行すると、無事に lint 自体は動いて要るっぽい。
ルールに引っかかった部分が修正されています。
ただ、問題が1つ発生して、このプロジェクトが compose だったのですが、コンポーネントの関数名がルールに反していると警告が…
コンポーネント関数の命名が他と違うので、その件について lint のルールに追加していきます。
lint のルールを設定
では、プロジェクトの直下に “.editorconfig” ファイルを作成してそこにルールを追記していきます。
大体の内容は公式からパクッてきつつ、compose 関係についてだけ追加しました。
以下は .editorconfig に記載した一例になります。
root = true
[*]
insert_final_newline = true
[{*.kt,*.kts}]
ij_kotlin_code_style_defaults = KOTLIN_OFFICIAL
# Disable wildcard imports entirely
ktlint_function_naming_ignore_when_annotated_with = Composable
再度コマンドを実行すれば、コンポーネントの関数名が引っかかることがなくなったと思います。
最後に
ktlint-gradle の導入に関する個人的な備忘録ですが、誰かの役に立てば幸いです。
以下のような記事も投稿しているため、よければご覧ください~。
コメント