新規プロジェクトにktlint-gradleを導入するまとめ

最近個人の 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 の設定を行っていた気がしたのですが、必要なさそうでした。

GitHub - JLLeitschuh/ktlint-gradle: A ktlint gradle plugin
A ktlint gradle plugin. Contribute to JLLeitschuh/ktlint-gradle development by creating an account on GitHub.

./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

再度コマンドを実行すれば、コンポーネントの関数名が引っかかることがなくなったと思います。

IntelliJ IDEA configuration - Ktlint

最後に

ktlint-gradle の導入に関する個人的な備忘録ですが、誰かの役に立てば幸いです。

 

以下のような記事も投稿しているため、よければご覧ください~。

機種によりカメラ起動中にNFC処理が反応しない件
個人的な android 開発中に、カメラの起動中に NFC の取得処理を挟もうとしたのだが、正しく処理できる場合とできない場合が存在した... android のバージョンが 11 以降だと NFC の処理ががらりと変わるので、それが原因...

コメント

タイトルとURLをコピーしました