🤖

AndroidのGradleファイルにおける複数ライブラリのバージョン固定をdependabotが反応するように指定する

2023/09/16に公開

達成したいこと

Android の Gradle ファイルにおいて、複数のライブラリのバージョンを固定させるためにバージョンの変数を用いることがあります。

app/build.gradle
mockk_version = '1.12.5' // バージョンの変数

testImplementation "io.mockk:mockk:$mockk_version"
testImplementation "io.mockk:mockk-android:$mockk_version"

しかし、上記の定義方法だと、dependabot が反応せず、ライブラリ更新の自動化を導入できません

本記事では、複数のライブラリバージョンの共通化を強制しつつ、dependabot を利用した自動ライブラリ更新を実現する方法を紹介します。

解決方法の概要

バージョンカタログという仕組みを利用して定義します。

https://developer.android.com/build/migrate-to-catalogs

Gradle 7.0 以上が必要です。

具体的な手順

まず、Gradle 8.0 未満を利用している場合は、settings.gradle に以下の行を追加して機能を有効化します。

settings.gradle
enableFeaturePreview("VERSION_CATALOGS")

次に、gradle/libs.versions.toml ファイルを作成し、以下のように定義します。

gradle/libs.versions.toml
[versions]
mockk_version = "1.12.5"

[libraries]
mockk = { group = "io.mockk", name = "mockk", version.ref = "mockk_version" }
mockkAndroid = { group = "io.mockk", name = "mockk-android", version.ref = "mockk_version" }

[plugins]

さらに、app/build.gradle にて、以下のように修正します。

app/build.gradle
-mockk_version = '1.12.5' // バージョンの変数
-
-testImplementation "io.mockk:mockk:$mockk_version"
+testImplementation libs.mockk
-testImplementation "io.mockk:mockk-android:$mockk_version"
+testImplementation libs.mockkAndroid

これをマージすると、dependabot が反応し、以下のような PR が自動で作成されるようになります。


GitHubで編集を提案

Discussion