Gradle: Migrate to version catalog

This commit is contained in:
Steffen Winter
2026-05-15 22:02:12 +02:00
committed by José Rebelo
parent 7ba726c523
commit d33ada370f
3 changed files with 191 additions and 60 deletions
+1 -1
View File
@@ -11,7 +11,7 @@ dependencies {
//implementation 'com.github.Freeyourgadget:greendao:1998d7cd2d21f662c6044f6ccf3b3a251bbad341' //implementation 'com.github.Freeyourgadget:greendao:1998d7cd2d21f662c6044f6ccf3b3a251bbad341'
// As of 2025-06-19, this is bundled directly in the repository due to jitpack build issues // As of 2025-06-19, this is bundled directly in the repository due to jitpack build issues
implementation 'org.freemarker:freemarker:2.3.23' implementation libs.freemarker
} }
sourceSets { sourceSets {
+50 -59
View File
@@ -231,69 +231,60 @@ android {
} }
dependencies { dependencies {
coreLibraryDesugaring 'com.android.tools:desugar_jdk_libs:2.1.5' coreLibraryDesugaring libs.desugar.jdk.libs
implementation 'androidx.constraintlayout:constraintlayout:2.2.1' implementation libs.androidx.constraintlayout
implementation "androidx.camera:camera-core:1.6.1" implementation libs.bundles.androidx.camera
implementation "androidx.camera:camera-camera2:1.6.1"
implementation 'androidx.camera:camera-view:1.6.1'
implementation 'androidx.camera:camera-lifecycle:1.6.1'
testImplementation "junit:junit:4.13.2" testImplementation libs.junit
testImplementation "org.mockito:mockito-core:5.23.0" testImplementation libs.mockito
testImplementation "org.robolectric:robolectric:4.16.1" testImplementation libs.robolectric
testImplementation "org.hamcrest:hamcrest-library:3.0" testImplementation libs.hamcrest
implementation 'androidx.core:core-ktx:1.18.0' implementation libs.androidx.core.ktx
implementation "org.jetbrains.kotlin:kotlin-stdlib:2.3.20" implementation platform(libs.kotlin.bom)
implementation libs.kotlin.stdlib
implementation "androidx.appcompat:appcompat:1.7.1" implementation libs.androidx.appcompat
implementation "androidx.preference:preference-ktx:1.2.1" implementation libs.androidx.preference.ktx
implementation "androidx.cardview:cardview:1.0.0" implementation libs.androidx.cardview
implementation "androidx.recyclerview:recyclerview:1.4.0" implementation libs.androidx.recyclerview
implementation "androidx.legacy:legacy-support-v4:1.0.0" implementation libs.androidx.legacy.support.v4
implementation "androidx.gridlayout:gridlayout:1.1.0" implementation libs.androidx.gridlayout
implementation "androidx.palette:palette-ktx:1.0.0" implementation libs.androidx.palette.ktx
implementation "androidx.activity:activity-ktx:1.13.0" implementation libs.androidx.activity.ktx
implementation "androidx.fragment:fragment-ktx:1.8.9" implementation libs.androidx.fragment.ktx
implementation "androidx.viewpager2:viewpager2:1.1.0" implementation libs.androidx.viewpager2
implementation "androidx.work:work-runtime-ktx:2.11.1" implementation libs.androidx.work.runtime.ktx
implementation 'androidx.lifecycle:lifecycle-process:2.10.0' implementation libs.androidx.lifecycle.process
// Not latest version because of https://github.com/material-components/material-components-android/issues/3924 implementation libs.material
implementation "com.google.android.material:material:1.13.0" implementation libs.flexbox
implementation 'com.google.android.flexbox:flexbox:3.0.0' implementation libs.gson
implementation "com.google.code.gson:gson:2.14.0"
implementation "no.nordicsemi.android:dfu:2.11.0" implementation libs.dfu
implementation "com.github.tony19:logback-android:3.0.0" implementation libs.logback.android
implementation "org.slf4j:slf4j-api:2.0.17" implementation libs.slf4j.api
implementation "com.github.PhilJay:MPAndroidChart:3.1.0" implementation libs.mpandroidchart
implementation "com.github.pfichtner:durationformatter:0.1.1" implementation libs.durationformatter
implementation "de.cketti.library.changelog:ckchangelog:1.2.2" implementation libs.ckchangelog
implementation "net.e175.klaus:solarpositioning:0.1.10" implementation libs.solarpositioning
implementation "co.nstant.in:cbor:0.9" implementation libs.cbor
// use pristine greendao instead of our custom version, since our custom jitpack-packaged // use pristine greendao instead of our custom version, since our custom jitpack-packaged
// version contains way too much and our custom patches are in the generator only. // version contains way too much and our custom patches are in the generator only.
implementation "org.greenrobot:greendao:2.2.1" implementation libs.greendao
implementation "org.apache.commons:commons-lang3:3.20.0" implementation libs.apache.commons.lang3
implementation "org.cyanogenmod:platform.sdk:6.0" implementation libs.cyanogenmod.sdk
implementation 'com.jaredrummler:colorpicker:1.1.0' implementation libs.colorpicker
implementation 'com.github.wax911.android-emojify:contract:1.9.7' implementation libs.bundles.android.emojify
implementation 'com.github.wax911.android-emojify:emojify:1.9.7' implementation libs.protobuf.lite
implementation 'com.github.wax911.android-emojify:gson:1.9.7' implementation libs.okhttp
implementation 'com.google.protobuf:protobuf-javalite:4.34.1' implementation libs.msgpack
implementation 'com.squareup.okhttp3:okhttp:5.3.2' implementation libs.searchpreference
implementation 'org.msgpack:msgpack-core:0.9.11'
implementation 'com.github.ByteHamster:SearchPreference:2.7.3'
implementation 'com.github.mapsforge.mapsforge:mapsforge-core:0.28.0' implementation libs.bundles.mapsforge
implementation 'com.github.mapsforge.mapsforge:mapsforge-map:0.28.0' implementation libs.androidsvg
implementation 'com.github.mapsforge.mapsforge:mapsforge-map-reader:0.28.0' implementation libs.jsoup
implementation 'com.github.mapsforge.mapsforge:mapsforge-themes:0.28.0'
implementation 'com.github.mapsforge.mapsforge:mapsforge-map-android:0.28.0'
implementation 'com.caverock:androidsvg:1.4'
implementation 'org.jsoup:jsoup:1.22.2'
// Bouncy Castle is included directly in GB, to avoid pulling the entire dependency // Bouncy Castle is included directly in GB, to avoid pulling the entire dependency
// It's included in the org.bouncycastle.shaded package, to fix conflicts with roboelectric // It's included in the org.bouncycastle.shaded package, to fix conflicts with roboelectric
@@ -301,14 +292,14 @@ dependencies {
//implementation 'org.bouncycastle:bcprov-jdk18on:1.76' //implementation 'org.bouncycastle:bcprov-jdk18on:1.76'
// Android SDK bundles org.json, but we need an actual implementation to replace the stubs in tests // Android SDK bundles org.json, but we need an actual implementation to replace the stubs in tests
testImplementation 'org.json:json:20251224' testImplementation libs.json
// Needed for Armenian transliteration // Needed for Armenian transliteration
implementation 'org.ahocorasick:ahocorasick:0.6.3' implementation libs.ahocorasick
// Android Health Connect // Android Health Connect
implementation 'com.google.guava:guava:33.4.8-android' // This is needed because CameraActivity.java line 41 doesn't have a ListenableFuture package implementation libs.guava // This is needed because CameraActivity.java line 41 doesn't have a ListenableFuture package
implementation 'androidx.health.connect:connect-client:1.1.0' implementation libs.androidx.health.connect.client
} }
preBuild.dependsOn(":GBDaoGenerator:genSources") preBuild.dependsOn(":GBDaoGenerator:genSources")
@@ -330,7 +321,7 @@ tasks.clean.dependsOn(tasks.cleanGenerated)
protobuf { protobuf {
protoc { protoc {
artifact = 'com.google.protobuf:protoc:4.34.1' artifact = libs.protoc.get()
} }
generateProtoTasks { generateProtoTasks {
all().each { final task -> all().each { final task ->
+140
View File
@@ -0,0 +1,140 @@
[versions]
ahocorasick = "0.6.3"
android-emojify = "1.9.7"
android-gradle-plugin = "8.13.2"
androidsvg = "1.4"
androidx-activity = "1.13.0"
androidx-appcompat = "1.7.1"
androidx-camera = "1.6.1"
androidx-cardview = "1.0.0"
androidx-constraintlayout = "2.2.1"
androidx-core = "1.18.0"
androidx-fragment = "1.8.9"
androidx-gridlayout = "1.1.0"
androidx-health-connect = "1.1.0"
androidx-legacy = "1.0.0"
androidx-lifecycle = "2.10.0"
androidx-palette = "1.0.0"
androidx-preference = "1.2.1"
androidx-recyclerview = "1.4.0"
androidx-viewpager = "1.1.0"
androidx-workmanager = "2.11.1"
apache-commons = "3.20.0"
cbor = "0.9"
ckchangelog = "1.2.2"
colorpicker = "1.1.0"
cyanogenmod = "6.0"
desugar-jdk-libs = "2.1.5"
dfu = "2.11.0"
durationformatter = "0.1.1"
flexbox = "3.0.0"
freemarker = "2.3.23"
greendao = "2.2.1"
gson = "2.14.0"
guava = "33.4.8-android"
hamcrest = "3.0"
json = "20251224"
jsoup = "1.22.2"
junit = "4.13.2"
kotlin = "2.3.20"
logback-android = "3.0.0"
mapsforge = "0.28.0"
material = "1.13.0"
mockito = "5.23.0"
mpandroidchart = "3.1.0"
msgpack = "0.9.11"
okhttp = "5.3.2"
protobuf = "4.34.1"
protobuf-plugin = "0.10.0"
robolectric = "4.16.1"
searchpreference = "2.7.3"
slf4j = "2.0.17"
solarpositioning = "0.1.10"
[libraries]
ahocorasick = { group = "org.ahocorasick", name = "ahocorasick", version.ref = "ahocorasick" }
android-emojify-contract = { group = "com.github.wax911.android-emojify", name = "contract", version.ref = "android-emojify" }
android-emojify-emojify = { group = "com.github.wax911.android-emojify", name = "emojify", version.ref = "android-emojify" }
android-emojify-gson = { group = "com.github.wax911.android-emojify", name = "gson", version.ref = "android-emojify" }
androidsvg = { group = "com.caverock", name = "androidsvg", version.ref = "androidsvg" }
androidx-activity-ktx = { group = "androidx.activity", name = "activity-ktx", version.ref = "androidx-activity" }
androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" }
androidx-camera-camera2 = { group = "androidx.camera", name = "camera-camera2", version.ref = "androidx-camera" }
androidx-camera-core = { group = "androidx.camera", name = "camera-core", version.ref = "androidx-camera" }
androidx-camera-lifecycle = { group = "androidx.camera", name = "camera-lifecycle", version.ref = "androidx-camera" }
androidx-camera-view = { group = "androidx.camera", name = "camera-view", version.ref = "androidx-camera" }
androidx-cardview = { group = "androidx.cardview", name = "cardview", version.ref = "androidx-cardview" }
androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidx-constraintlayout" }
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidx-core" }
androidx-fragment-ktx = { group = "androidx.fragment", name = "fragment-ktx", version.ref = "androidx-fragment" }
androidx-gridlayout = { group = "androidx.gridlayout", name = "gridlayout", version.ref = "androidx-gridlayout" }
androidx-health-connect-client = { group = "androidx.health.connect", name = "connect-client", version.ref = "androidx-health-connect" }
androidx-legacy-support-v4 = { group = "androidx.legacy", name = "legacy-support-v4", version.ref = "androidx-legacy" }
androidx-lifecycle-process = { group = "androidx.lifecycle", name = "lifecycle-process", version.ref = "androidx-lifecycle" }
androidx-palette-ktx = { group = "androidx.palette", name = "palette-ktx", version.ref = "androidx-palette" }
androidx-preference-ktx = { group = "androidx.preference", name = "preference-ktx", version.ref = "androidx-preference" }
androidx-recyclerview = { group = "androidx.recyclerview", name = "recyclerview", version.ref = "androidx-recyclerview" }
androidx-viewpager2 = { group = "androidx.viewpager2", name = "viewpager2", version.ref = "androidx-viewpager" }
androidx-work-runtime-ktx = { group = "androidx.work", name = "work-runtime-ktx", version.ref = "androidx-workmanager" }
apache-commons-lang3 = { group = "org.apache.commons", name = "commons-lang3", version.ref = "apache-commons" }
cbor = { group = "co.nstant.in", name = "cbor", version.ref = "cbor" }
ckchangelog = { group = "de.cketti.library.changelog", name = "ckchangelog", version.ref = "ckchangelog" }
colorpicker = { group = "com.jaredrummler", name = "colorpicker", version.ref = "colorpicker" }
cyanogenmod-sdk = { group = "org.cyanogenmod", name = "platform.sdk", version.ref = "cyanogenmod" }
desugar-jdk-libs = { group = "com.android.tools", name = "desugar_jdk_libs", version.ref = "desugar-jdk-libs" }
dfu = { group = "no.nordicsemi.android", name = "dfu", version.ref = "dfu" }
durationformatter = { group = "com.github.pfichtner", name = "durationformatter", version.ref = "durationformatter" }
flexbox = { group = "com.google.android.flexbox", name = "flexbox", version.ref = "flexbox" }
freemarker = { group = "org.freemarker", name = "freemarker", version.ref = "freemarker" }
greendao = { group = "org.greenrobot", name = "greendao", version.ref = "greendao" }
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
guava = { group = "com.google.guava", name = "guava", version.ref = "guava" }
hamcrest = { group = "org.hamcrest", name = "hamcrest-library", version.ref = "hamcrest" }
json = { group = "org.json", name = "json", version.ref = "json" }
jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoup" }
junit = { group = "junit", name = "junit", version.ref = "junit" }
kotlin-bom = { group = "org.jetbrains.kotlin", name = "kotlin-bom", version.ref = "kotlin" }
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib" }
logback-android = { group = "com.github.tony19", name = "logback-android", version.ref = "logback-android" }
mapsforge-core = { group = "com.github.mapsforge.mapsforge", name = "mapsforge-core", version.ref = "mapsforge" }
mapsforge-map = { group = "com.github.mapsforge.mapsforge", name = "mapsforge-map", version.ref = "mapsforge" }
mapsforge-map-android = { group = "com.github.mapsforge.mapsforge", name = "mapsforge-map-android", version.ref = "mapsforge" }
mapsforge-map-reader = { group = "com.github.mapsforge.mapsforge", name = "mapsforge-map-reader", version.ref = "mapsforge" }
mapsforge-themes = { group = "com.github.mapsforge.mapsforge", name = "mapsforge-themes", version.ref = "mapsforge" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" }
mockito = { group = "org.mockito", name = "mockito-core", version.ref = "mockito" }
mpandroidchart = { group = "com.github.PhilJay", name = "MPAndroidChart", version.ref = "mpandroidchart" }
msgpack = { group = "org.msgpack", name = "msgpack-core", version.ref = "msgpack" }
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
protobuf-lite = { group = "com.google.protobuf", name = "protobuf-javalite", version.ref = "protobuf" }
protoc = { group = "com.google.protobuf", name = "protoc", version.ref = "protobuf" }
robolectric = { group = "org.robolectric", name = "robolectric", version.ref = "robolectric" }
searchpreference = { group = "com.github.ByteHamster", name = "SearchPreference", version.ref = "searchpreference" }
slf4j-api = { group = "org.slf4j", name = "slf4j-api", version.ref = "slf4j" }
solarpositioning = { group = "net.e175.klaus", name = "solarpositioning", version.ref = "solarpositioning" }
[bundles]
android-emojify = [
"android-emojify-contract",
"android-emojify-emojify",
"android-emojify-gson",
]
androidx-camera = [
"androidx-camera-camera2",
"androidx-camera-core",
"androidx-camera-lifecycle",
"androidx-camera-view",
]
mapsforge = [
"mapsforge-core",
"mapsforge-map",
"mapsforge-map-android",
"mapsforge-map-reader",
"mapsforge-themes",
]
[plugins]
android-application = { id = "com.android.application", version.ref = "android-gradle-plugin" }
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
kotlin-parcelize = { id = "org.jetbrains.kotlin.plugin.parcelize", version.ref = "kotlin" }
protobuf = { id = "com.google.protobuf", version.ref = "protobuf-plugin" }