n番煎じではありますが2024年時点のAndroidプロジェクト向けの記録を残しておきます。
Kotlin
Jetpack Compose
Gradle バージョン カタログ (libs.versions.toml)
Kotlin DSL (buid.gradle.kts)
Dependenciesの追加と設定
ktlint gradle pluginを導入します。
ついでにcompose向けのlint checkも入れておきます。
ライブラリやプラグインのバージョンは公式サイトで最新を調べて設定します。
libs.versions.toml
[libraries]
compose-lint-checks = { module = "com.slack.lint.compose:compose-lint-checks", version = "1.3.1" }
[plugins]
gradle-ktlint = { id = "org.jlleitschuh.gradle.ktlint", version = "12.1.1" }
build.gradle.kts
plugins {
...
alias(libs.plugins.gradle.ktlint) apply false
}
app/build.grdle.kts
plugins {
...
alias(libs.plugins.gradle.ktlint)
}
android {
// ktlint configuration
// see: https://github.com/JLLeitschuh/ktlint-gradle?tab=readme-ov-file#configuration
ktlint {
android.set(true)
}
}
ktlintの設定ファイルをプロジェクトルートに作成します。
Compose名が小文字で始まっていると怒られるので@Composable
アノテーションがついているfunctionの名前チェックをスキップする設定を入れておきます。
.editorconfig
root=true
[*.{kt,kts}]
ktlint_function_naming_ignore_when_annotated_with=Composable
gradle syncするとktlintFormatを含むktlintのgradleタスクが追加されます。
ktlintFormatを実行する準備が整いました。
コマンドラインから実行
$ ./gradlew ktlintFormat
gradle タスクにktlintFormatを追加
次にpreBuildにktlintFormatタスクを登録します。
app/build.gradle.kts
import com.android.build.gradle.internal.tasks.factory.dependsOn
android {
...
project.tasks.preBuild.dependsOn("ktlintFormat")
}
これでビルド時にktlintFormatが実行されるようになりました