From 1a11fb949e604b94dc57314d1aaa2c8751239488 Mon Sep 17 00:00:00 2001 From: Elly Kitoto Date: Mon, 3 Nov 2025 13:14:26 +0300 Subject: [PATCH 1/2] Refactor gradle dependencies to use toml file Signed-off-by: Elly Kitoto --- .gitignore | 2 + .vscode/extensions.json | 7 -- .vscode/settings.json | 32 ------- buildSrc/src/main/kotlin/Dependencies.kt | 90 +------------------ catalog/build.gradle.kts | 4 +- common/build.gradle.kts | 6 +- contrib/barcode/build.gradle.kts | 20 ++--- contrib/locationwidget/build.gradle.kts | 10 +-- datacapture/build.gradle.kts | 18 ++-- demo/build.gradle.kts | 6 +- document/build.gradle.kts | 24 ++--- engine/benchmarks/app/build.gradle.kts | 4 +- .../macrobenchmark/build.gradle.kts | 2 +- .../microbenchmark/build.gradle.kts | 8 +- engine/build.gradle.kts | 38 ++++---- gradle/libs.versions.toml | 63 +++++++++++++ knowledge/build.gradle.kts | 24 ++--- workflow-testing/build.gradle.kts | 6 +- workflow/benchmark/build.gradle.kts | 4 +- workflow/build.gradle.kts | 24 ++--- workflow_demo/build.gradle.kts | 4 +- 21 files changed, 167 insertions(+), 229 deletions(-) delete mode 100644 .vscode/extensions.json delete mode 100644 .vscode/settings.json diff --git a/.gitignore b/.gitignore index 6255986f61..3800acc3f3 100644 --- a/.gitignore +++ b/.gitignore @@ -100,3 +100,5 @@ docs/use/api/*/** # Synthea synthea + +.vscode diff --git a/.vscode/extensions.json b/.vscode/extensions.json deleted file mode 100644 index 50ff9c8362..0000000000 --- a/.vscode/extensions.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "recommendations": [ - "davidanson.vscode-markdownlint", - "streetsidesoftware.code-spell-checker", - "redhat.vscode-yaml" - ] -} diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100644 index ecbb75f88f..0000000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "editor.autoIndent": "advanced", - "editor.insertSpaces": true, - "editor.indentSize": "tabSize", - "editor.tabSize": 2, - - "files.insertFinalNewline": true, - "files.trimTrailingWhitespace": true, - - // https://squidfunk.github.io/mkdocs-material/creating-your-site/ - "yaml.schemas": { - "https://squidfunk.github.io/mkdocs-material/schema.json": "mkdocs.yaml" - }, - "yaml.customTags": [ - "!ENV scalar", - "!ENV sequence", - "!relative scalar", - "tag:yaml.org,2002:python/name:material.extensions.emoji.to_svg", - "tag:yaml.org,2002:python/name:material.extensions.emoji.twemoji", - "tag:yaml.org,2002:python/name:pymdownx.superfences.fence_code_format" - ], - - "[yaml]": { - "editor.defaultFormatter": "redhat.vscode-yaml", - "diffEditor.ignoreTrimWhitespace": false, - "editor.quickSuggestions": { - "other": true, - "comments": false, - "strings": true - } - } -} diff --git a/buildSrc/src/main/kotlin/Dependencies.kt b/buildSrc/src/main/kotlin/Dependencies.kt index 61d8afb074..9a51767895 100644 --- a/buildSrc/src/main/kotlin/Dependencies.kt +++ b/buildSrc/src/main/kotlin/Dependencies.kt @@ -1,5 +1,5 @@ /* - * Copyright 2023-2024 Google LLC + * Copyright 2023-2025 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -41,16 +41,7 @@ object Dependencies { const val fhirCoreUtilsModule = "ca.uhn.hapi.fhir:org.hl7.fhir.utilities" const val fhirCoreConvertorsModule = "ca.uhn.hapi.fhir:org.hl7.fhir.convertors" - const val guavaCachingModule = "ca.uhn.hapi.fhir:hapi-fhir-caching-guava" - - const val structuresR4 = "$structuresR4Module:${Versions.hapiFhir}" - const val validation = "$validationModule:${Versions.hapiFhir}" - const val validationR4 = "$validationR4Module:${Versions.hapiFhir}" - - const val fhirCoreConvertors = "$fhirCoreConvertorsModule:${Versions.hapiFhirCore}" - - const val guavaCaching = "$guavaCachingModule:${Versions.hapiFhir}" } object Jackson { @@ -70,69 +61,14 @@ object Dependencies { const val jsr310Base = "$datatypeGroup:jackson-datatype-jsr310:${Versions.jackson}" } - object Retrofit { - const val coreRetrofit = "com.squareup.retrofit2:retrofit:${Versions.retrofit}" - const val gsonConverter = "com.squareup.retrofit2:converter-gson:${Versions.retrofit}" - } - - object Mlkit { - const val barcodeScanning = - "com.google.mlkit:barcode-scanning:${Versions.Mlkit.barcodeScanning}" - const val objectDetection = - "com.google.mlkit:object-detection:${Versions.Mlkit.objectDetection}" - const val objectDetectionCustom = - "com.google.mlkit:object-detection-custom:${Versions.Mlkit.objectDetectionCustom}" - } - - const val playServicesLocation = - "com.google.android.gms:play-services-location:${Versions.playServicesLocation}" - - const val apacheCommonsCompress = - "org.apache.commons:commons-compress:${Versions.apacheCommonsCompress}" - - const val desugarJdkLibs = "com.android.tools:desugar_jdk_libs:${Versions.desugarJdkLibs}" - const val fhirUcum = "org.fhir:ucum:${Versions.fhirUcum}" - const val guavaModule = "com.google.guava:guava" - const val guava = "$guavaModule:${Versions.guava}" - - const val httpInterceptor = "com.squareup.okhttp3:logging-interceptor:${Versions.http}" - const val http = "com.squareup.okhttp3:okhttp:${Versions.http}" - const val mockWebServer = "com.squareup.okhttp3:mockwebserver:${Versions.http}" - - const val jsonToolsPatch = "com.github.java-json-tools:json-patch:${Versions.jsonToolsPatch}" - const val sqlcipher = "net.zetetic:android-database-sqlcipher:${Versions.sqlcipher}" - const val timber = "com.jakewharton.timber:timber:${Versions.timber}" - const val woodstox = "com.fasterxml.woodstox:woodstox-core:${Versions.woodstox}" - const val xerces = "xerces:xercesImpl:${Versions.xerces}" - - const val zxing = "com.google.zxing:core:${Versions.zxing}" - const val nimbus = "com.nimbusds:nimbus-jose-jwt:${Versions.nimbus}" - - const val androidBenchmarkRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner" - const val androidJunitRunner = "androidx.test.runner.AndroidJUnitRunner" - - // Makes Json assertions where the order of elements, tabs/whitespaces are not important. - const val jsonAssert = "org.skyscreamer:jsonassert:${Versions.jsonAssert}" - const val mockitoKotlin = "org.mockito.kotlin:mockito-kotlin:${Versions.mockitoKotlin}" - const val mockitoInline = "org.mockito:mockito-inline:${Versions.mockitoInline}" - const val robolectric = "org.robolectric:robolectric:${Versions.robolectric}" - - // Makes XML assertions where the order of elements, tabs/whitespaces are not important. - const val xmlUnit = "org.xmlunit:xmlunit-core:${Versions.xmlUnit}" object Versions { - const val apacheCommonsCompress = "1.21" - const val desugarJdkLibs = "2.0.3" - const val caffeine = "2.9.1" - const val fhirUcum = "1.0.3" const val guava = "32.1.3-android" const val hapiFhir = "6.8.0" const val hapiFhirCore = "6.0.22" - const val http = "4.11.0" - // Maximum Jackson libraries (excluding core) version that supports Android API Level 24: // https://github.com/FasterXML/jackson-databind/issues/3658 const val jackson = "2.13.5" @@ -140,32 +76,8 @@ object Dependencies { // Maximum Jackson Core library version that supports Android API Level 24: const val jacksonCore = "2.15.2" - const val jsonToolsPatch = "1.13" - const val jsonAssert = "1.5.1" - const val retrofit = "2.9.0" - const val gsonConverter = "2.1.0" - const val sqlcipher = "4.5.4" - const val timber = "5.0.1" - const val woodstox = "6.5.1" - const val xerces = "2.12.2" - const val xmlUnit = "2.9.1" - - const val zxing = "3.4.1" - const val nimbus = "9.31" - // Test dependencies const val jacoco = "0.8.10" - const val mockitoKotlin = "3.2.0" - const val mockitoInline = "4.0.0" - const val robolectric = "4.10.3" - - object Mlkit { - const val barcodeScanning = "16.1.1" - const val objectDetection = "16.2.3" - const val objectDetectionCustom = "16.3.1" - } - - const val playServicesLocation = "21.0.1" } fun Configuration.removeIncompatibleDependencies() { diff --git a/catalog/build.gradle.kts b/catalog/build.gradle.kts index a89e6d68e6..5c4ff8ca9b 100644 --- a/catalog/build.gradle.kts +++ b/catalog/build.gradle.kts @@ -15,7 +15,7 @@ android { targetSdk = Sdk.TARGET_SDK versionCode = Releases.Catalog.versionCode versionName = Releases.Catalog.versionName - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildFeatures { viewBinding = true } @@ -44,7 +44,7 @@ dependencies { androidTestImplementation(libs.androidx.test.espresso.core) androidTestImplementation(libs.androidx.test.ext.junit) - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) implementation(libs.androidx.appcompat) implementation(libs.androidx.constraintlayout) diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 8cb024e599..b8e612d652 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -22,11 +22,11 @@ android { configurations { all { removeIncompatibleDependencies() } } dependencies { - api(Dependencies.HapiFhir.structuresR4) + api(libs.hapi.fhir.structures.r4) - implementation(Dependencies.fhirUcum) + implementation(libs.fhir.ucum) - testImplementation(Dependencies.robolectric) + testImplementation(libs.robolectric) testImplementation(libs.androidx.test.core) testImplementation(libs.junit) testImplementation(libs.kotlin.test.junit) diff --git a/contrib/barcode/build.gradle.kts b/contrib/barcode/build.gradle.kts index d731f7819b..f66991e1a9 100644 --- a/contrib/barcode/build.gradle.kts +++ b/contrib/barcode/build.gradle.kts @@ -16,7 +16,7 @@ android { compileSdk = Sdk.COMPILE_SDK defaultConfig { minSdk = Sdk.MIN_SDK - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // Need to specify this to prevent junit runner from going deep into our dependencies testInstrumentationRunnerArguments["package"] = "com.google.android.fhir.datacapture" } @@ -55,7 +55,7 @@ android { configurations { all { removeIncompatibleDependencies() } } dependencies { - androidTestImplementation(Dependencies.mockitoInline) + androidTestImplementation(libs.mockito.inline) androidTestImplementation(libs.androidx.fragment.testing) androidTestImplementation(libs.androidx.test.core) androidTestImplementation(libs.androidx.test.ext.junit) @@ -64,21 +64,21 @@ dependencies { androidTestImplementation(libs.androidx.test.runner) androidTestImplementation(libs.truth) - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) implementation(project(":datacapture")) - implementation(Dependencies.Mlkit.barcodeScanning) - implementation(Dependencies.Mlkit.objectDetection) - implementation(Dependencies.Mlkit.objectDetectionCustom) - implementation(Dependencies.timber) + implementation(libs.mlkit.barcode.scanning) + implementation(libs.mlkit.obj.detection) + implementation(libs.mlkit.obj.detection.custom) + implementation(libs.timber) implementation(libs.androidx.appcompat) implementation(libs.androidx.core) implementation(libs.androidx.fragment) implementation(libs.material) - testImplementation(Dependencies.mockitoInline) - testImplementation(Dependencies.mockitoKotlin) - testImplementation(Dependencies.robolectric) + testImplementation(libs.mockito.inline) + testImplementation(libs.mockito.kotlin) + testImplementation(libs.robolectric) testImplementation(libs.androidx.fragment.testing) testImplementation(libs.androidx.test.core) testImplementation(libs.junit) diff --git a/contrib/locationwidget/build.gradle.kts b/contrib/locationwidget/build.gradle.kts index 0b2148f79c..436810cc7a 100644 --- a/contrib/locationwidget/build.gradle.kts +++ b/contrib/locationwidget/build.gradle.kts @@ -16,7 +16,7 @@ android { compileSdk = Sdk.COMPILE_SDK defaultConfig { minSdk = Sdk.MIN_SDK - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // Need to specify this to prevent junit runner from going deep into our dependencies testInstrumentationRunnerArguments["package"] = "com.google.android.fhir.datacapture" } @@ -64,17 +64,17 @@ dependencies { androidTestImplementation(libs.truth) implementation(project(":datacapture")) - implementation(Dependencies.playServicesLocation) - implementation(Dependencies.timber) + implementation(libs.play.services.location) + implementation(libs.timber) implementation(libs.androidx.appcompat) implementation(libs.androidx.core) implementation(libs.androidx.fragment) implementation(libs.kotlinx.coroutines.playservices) implementation(libs.material) - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) - testImplementation(Dependencies.robolectric) + testImplementation(libs.robolectric) testImplementation(libs.androidx.fragment.testing) testImplementation(libs.junit) testImplementation(libs.kotlin.test.junit) diff --git a/datacapture/build.gradle.kts b/datacapture/build.gradle.kts index 1594e3114a..14322d6933 100644 --- a/datacapture/build.gradle.kts +++ b/datacapture/build.gradle.kts @@ -19,7 +19,7 @@ android { compileSdk = Sdk.COMPILE_SDK defaultConfig { minSdk = Sdk.MIN_SDK - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // Need to specify this to prevent junit runner from going deep into our dependencies testInstrumentationRunnerArguments["package"] = "com.google.android.fhir.datacapture" consumerProguardFile("proguard-rules.pro") @@ -85,16 +85,16 @@ dependencies { androidTestImplementation(libs.kotlinx.coroutines.test) androidTestImplementation(libs.truth) - api(Dependencies.HapiFhir.structuresR4) + api(libs.hapi.fhir.structures.r4) - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) - implementation(Dependencies.HapiFhir.guavaCaching) - implementation(Dependencies.HapiFhir.validation) { + implementation(libs.hapi.fhir.caching.guava) + implementation(libs.hapi.fhir.validation) { exclude(module = "commons-logging") exclude(module = "httpclient") } - implementation(Dependencies.timber) + implementation(libs.timber) implementation(libs.android.fhir.common) implementation(libs.androidx.appcompat) implementation(libs.androidx.constraintlayout) @@ -121,9 +121,9 @@ dependencies { debugImplementation(libs.androidx.compose.ui.tooling) debugImplementation(libs.androidx.compose.ui.test.manifest) - testImplementation(Dependencies.mockitoInline) - testImplementation(Dependencies.mockitoKotlin) - testImplementation(Dependencies.robolectric) + testImplementation(libs.mockito.inline) + testImplementation(libs.mockito.kotlin) + testImplementation(libs.robolectric) testImplementation(project(":knowledge")) { exclude(group = "com.google.android.fhir", module = "engine") } diff --git a/demo/build.gradle.kts b/demo/build.gradle.kts index 7b6d2b293f..164d213c17 100644 --- a/demo/build.gradle.kts +++ b/demo/build.gradle.kts @@ -15,7 +15,7 @@ android { targetSdk = Sdk.TARGET_SDK versionCode = Releases.Demo.versionCode versionName = Releases.Demo.versionName - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { @@ -41,9 +41,9 @@ dependencies { androidTestImplementation(libs.androidx.test.espresso.core) androidTestImplementation(libs.androidx.test.ext.junit) - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) - implementation(Dependencies.timber) + implementation(libs.timber) implementation(libs.androidx.activity) implementation(libs.androidx.appcompat) implementation(libs.androidx.constraintlayout) diff --git a/document/build.gradle.kts b/document/build.gradle.kts index 432f731448..64a649c6ad 100644 --- a/document/build.gradle.kts +++ b/document/build.gradle.kts @@ -9,7 +9,7 @@ android { defaultConfig { minSdk = Sdk.MIN_SDK - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" consumerProguardFiles("consumer-rules.pro") } @@ -36,23 +36,23 @@ dependencies { androidTestImplementation(libs.androidx.test.espresso.core) androidTestImplementation(libs.androidx.test.ext.junit) - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) - implementation(Dependencies.Retrofit.coreRetrofit) - implementation(Dependencies.Retrofit.gsonConverter) - implementation(Dependencies.httpInterceptor) - implementation(Dependencies.zxing) - implementation(Dependencies.nimbus) - implementation(Dependencies.timber) + implementation(libs.retrofit) + implementation(libs.retrofit.converter.gson) + implementation(libs.http.interceptor) + implementation(libs.zxing) + implementation(libs.nimbus) + implementation(libs.timber) implementation(libs.android.fhir.engine) implementation(libs.androidx.appcompat) implementation(libs.androidx.core) implementation(libs.material) - testImplementation(Dependencies.robolectric) - testImplementation(Dependencies.mockitoKotlin) - testImplementation(Dependencies.mockitoInline) - testImplementation(Dependencies.mockWebServer) + testImplementation(libs.robolectric) + testImplementation(libs.mockito.kotlin) + testImplementation(libs.mockito.inline) + testImplementation(libs.mock.web.server) testImplementation(libs.junit) testImplementation(libs.kotlinx.coroutines.test) testImplementation(libs.truth) diff --git a/engine/benchmarks/app/build.gradle.kts b/engine/benchmarks/app/build.gradle.kts index 43c9267b21..2a994d30ae 100644 --- a/engine/benchmarks/app/build.gradle.kts +++ b/engine/benchmarks/app/build.gradle.kts @@ -16,7 +16,7 @@ android { versionCode = 1 versionName = "1.0" - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" val baseUrlKey = "FHIR_SERVER_BASE_URL" val fhirServerBaseUrl = @@ -59,7 +59,7 @@ android { configureSyntheaTask() dependencies { - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) implementation(project(":engine")) implementation(libs.androidx.core) diff --git a/engine/benchmarks/macrobenchmark/build.gradle.kts b/engine/benchmarks/macrobenchmark/build.gradle.kts index 243fb75c49..8e254c8cb7 100644 --- a/engine/benchmarks/macrobenchmark/build.gradle.kts +++ b/engine/benchmarks/macrobenchmark/build.gradle.kts @@ -10,7 +10,7 @@ android { defaultConfig { minSdk = Sdk.MIN_SDK targetSdk = Sdk.TARGET_SDK - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/engine/benchmarks/microbenchmark/build.gradle.kts b/engine/benchmarks/microbenchmark/build.gradle.kts index 709f0fc5a8..f561f254b4 100644 --- a/engine/benchmarks/microbenchmark/build.gradle.kts +++ b/engine/benchmarks/microbenchmark/build.gradle.kts @@ -9,7 +9,7 @@ android { compileSdk = Sdk.COMPILE_SDK defaultConfig { minSdk = Sdk.MIN_SDK - testInstrumentationRunner = Dependencies.androidBenchmarkRunner + testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner" } testBuildType = "release" @@ -51,8 +51,8 @@ android { afterEvaluate { configureFirebaseTestLabForMicroBenchmark() } dependencies { - androidTestImplementation(Dependencies.Retrofit.coreRetrofit) - androidTestImplementation(Dependencies.mockWebServer) + androidTestImplementation(libs.retrofit) + androidTestImplementation(libs.mock.web.server) androidTestImplementation(libs.androidx.benchmark.junit4) androidTestImplementation(libs.androidx.test.ext.junit) androidTestImplementation(libs.androidx.test.runner) @@ -66,5 +66,5 @@ dependencies { // for test json files only androidTestImplementation(project(":workflow-testing")) - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) } diff --git a/engine/build.gradle.kts b/engine/build.gradle.kts index 488705076a..b69d764ecc 100644 --- a/engine/build.gradle.kts +++ b/engine/build.gradle.kts @@ -38,7 +38,7 @@ android { compileSdk = Sdk.COMPILE_SDK defaultConfig { minSdk = Sdk.MIN_SDK - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // need to specify this to prevent junit runner from going deep into our dependencies testInstrumentationRunnerArguments["package"] = "com.google.android.fhir" consumerProguardFile("proguard-rules.pro") @@ -97,29 +97,29 @@ dependencies { androidTestImplementation(libs.junit) androidTestImplementation(libs.truth) - api(Dependencies.HapiFhir.structuresR4) { exclude(module = "junit") } + api(libs.hapi.fhir.structures.r4) { exclude(module = "junit") } - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) // We have removed the dependency on Caffeine from HAPI due to conflicts with android // Guava Caching must be individually loaded instead. - implementation(Dependencies.HapiFhir.guavaCaching) + implementation(libs.hapi.fhir.caching.guava) // Validation to load system types into FhirPath's Context // The loading happens via a ResourceStream in XML and thus // XML parsers are also necessary. - implementation(Dependencies.HapiFhir.validationR4) - implementation(Dependencies.HapiFhir.validation) { + implementation(libs.hapi.fhir.validation.r4) + implementation(libs.hapi.fhir.validation) { exclude(module = "commons-logging") exclude(module = "httpclient") } - implementation(Dependencies.Retrofit.coreRetrofit) - implementation(Dependencies.guava) - implementation(Dependencies.httpInterceptor) - implementation(Dependencies.jsonToolsPatch) - implementation(Dependencies.sqlcipher) - implementation(Dependencies.timber) - implementation(Dependencies.woodstox) - implementation(Dependencies.xerces) + implementation(libs.retrofit) + implementation(libs.guava) + implementation(libs.http.interceptor) + implementation(libs.json.tools.patch) + implementation(libs.sqlcipher) + implementation(libs.timber) + implementation(libs.woodstox) + implementation(libs.xerces) implementation(libs.android.fhir.common) implementation(libs.androidx.datastore.preferences) implementation(libs.androidx.lifecycle.livedata) @@ -132,11 +132,11 @@ dependencies { ksp(libs.androidx.room.compiler) - testImplementation(Dependencies.jsonAssert) - testImplementation(Dependencies.mockitoInline) - testImplementation(Dependencies.mockitoKotlin) - testImplementation(Dependencies.mockWebServer) - testImplementation(Dependencies.robolectric) + testImplementation(libs.json.assert) + testImplementation(libs.mockito.inline) + testImplementation(libs.mockito.kotlin) + testImplementation(libs.mock.web.server) + testImplementation(libs.robolectric) testImplementation(libs.androidx.arch.core.testing) testImplementation(libs.androidx.test.core) testImplementation(libs.androidx.work.testing) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fc67d7a693..fb62f787ba 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -40,6 +40,33 @@ material = "1.12.0" opencds-cqf-fhir = "3.8.0" truth = "1.1.5" uiautomator = "2.3.0" +desugarJdkLibs = "2.0.3" +fhir-ucum = "1.0.3" +guava = "32.1.3-android" +hapi-fhir = "6.8.0" +hapi-fhir-core = "6.0.22" +robolectric = "4.10.3" +apache-commons-compress = "1.21" +http = "4.11.0" +jackson = "2.13.5" +jackson-core = "2.15.2" +json-tools-patch = "1.13" +json-assert = "1.5.1" +mlkit-barcode-scanning = "16.1.1" +mlkit-object-detection = "16.2.3" +mlkit-object-detection-custom = "16.3.1" +mockito-inline = "4.0.0" +mockito-kotlin = "3.2.0" +nimbus = "9.31" +play-services-location = "21.0.1" +retrofit = "2.9.0" +sqlcipher = "4.5.4" +timber = "5.0.1" +woodstox = "6.5.1" +xerces = "2.12.2" +xml-unit = "2.9.1" +zxing = "3.4.1" +jacoco = "0.8.10" [libraries] accompanist-themeadapter-material3 = { module = "com.google.accompanist:accompanist-themeadapter-material3", version.ref = "accompanist-themeadapter-material3"} @@ -109,6 +136,42 @@ opencds-cqf-fhir-cr = { module = "org.opencds.cqf.fhir:cqf-fhir-cr", version.ref opencds-cqf-fhir-jackson = { module = "org.opencds.cqf.fhir:cqf-fhir-jackson", version.ref = "opencds-cqf-fhir" } opencds-cqf-fhir-utility = { module = "org.opencds.cqf.fhir:cqf-fhir-utility", version.ref = "opencds-cqf-fhir" } truth = { module = "com.google.truth:truth", version.ref = "truth" } +fhir-ucum = { module = "org.fhir:ucum", version.ref = "fhir-ucum" } +guava = { module = "com.google.guava:guava", version.ref = "guava" } +hapi-fhir-structures-r4 = { module = "ca.uhn.hapi.fhir:hapi-fhir-structures-r4", version.ref = "hapi-fhir" } +robolectric = { module = "org.robolectric:robolectric", version.ref = "robolectric" } +apache-commons-compress = { module = "org.apache.commons:commons-compress", version.ref = "apache-commons-compress" } +desugar-jdk-libs = { module = "com.android.tools:desugar_jdk_libs", version.ref = "desugarJdkLibs" } +hapi-fhir-caching-guava = { module = "ca.uhn.hapi.fhir:hapi-fhir-caching-guava", version.ref = "hapi-fhir" } +hapi-fhir-core-convertors = { module = "ca.uhn.hapi.fhir:org.hl7.fhir.convertors", version.ref = "hapi-fhir-core" } +hapi-fhir-validation = { module = "ca.uhn.hapi.fhir:hapi-fhir-validation", version.ref = "hapi-fhir" } +hapi-fhir-validation-r4 = { module = "ca.uhn.hapi.fhir:hapi-fhir-validation-resources-r4", version.ref = "hapi-fhir" } +http = { module = "com.squareup.okhttp3:okhttp", version.ref = "http" } +http-interceptor = { module = "com.squareup.okhttp3:logging-interceptor", version.ref = "http" } +jackson-annotations = { module = "com.fasterxml.jackson.core:jackson-annotations", version.ref = "jackson" } +jackson-core = { module = "com.fasterxml.jackson.core:jackson-core", version.ref = "jackson-core" } +jackson-databind = { module = "com.fasterxml.jackson.core:jackson-databind", version.ref = "jackson" } +jackson-dataformat-xml = { module = "com.fasterxml.jackson.dataformat:jackson-dataformat-xml", version.ref = "jackson" } +jackson-datatype-jsr310 = { module = "com.fasterxml.jackson.datatype:jackson-datatype-jsr310", version.ref = "jackson" } +jackson-module-jaxb-annotations = { module = "com.fasterxml.jackson.module:jackson-module-jaxb-annotations", version.ref = "jackson" } +json-assert = { module = "org.skyscreamer:jsonassert", version.ref = "json-assert" } +json-tools-patch = { module = "com.github.java-json-tools:json-patch", version.ref = "json-tools-patch" } +mlkit-barcode-scanning = { module = "com.google.mlkit:barcode-scanning", version.ref = "mlkit-barcode-scanning" } +mlkit-obj-detection = { module = "com.google.mlkit:object-detection", version.ref = "mlkit-object-detection" } +mlkit-obj-detection-custom = { module = "com.google.mlkit:object-detection-custom", version.ref = "mlkit-object-detection-custom" } +mock-web-server = { module = "com.squareup.okhttp3:mockwebserver", version.ref = "http" } +mockito-inline = { module = "org.mockito:mockito-inline", version.ref = "mockito-inline" } +mockito-kotlin = { module = "org.mockito.kotlin:mockito-kotlin", version.ref = "mockito-kotlin" } +nimbus = { module = "com.nimbusds:nimbus-jose-jwt", version.ref = "nimbus" } +play-services-location = { module = "com.google.android.gms:play-services-location", version.ref = "play-services-location" } +retrofit = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } +retrofit-converter-gson = { module = "com.squareup.retrofit2:converter-gson", version.ref = "retrofit" } +sqlcipher = { module = "net.zetetic:android-database-sqlcipher", version.ref = "sqlcipher" } +timber = { module = "com.jakewharton.timber:timber", version.ref = "timber" } +woodstox = { module = "com.fasterxml.woodstox:woodstox-core", version.ref = "woodstox" } +xerces = { module = "xerces:xercesImpl", version.ref = "xerces" } +xml-unit = { module = "org.xmlunit:xmlunit-core", version.ref = "xml-unit" } +zxing = { module = "com.google.zxing:core", version.ref = "zxing" } [bundles] androidx-tracing = ["androidx-tracing-tracing", "androidx-tracing-tracing-android", "androidx-tracing-tracing-ktx"] diff --git a/knowledge/build.gradle.kts b/knowledge/build.gradle.kts index 0a1f5fed19..6a122f2c12 100644 --- a/knowledge/build.gradle.kts +++ b/knowledge/build.gradle.kts @@ -22,7 +22,7 @@ android { compileSdk = Sdk.COMPILE_SDK defaultConfig { minSdk = Sdk.MIN_SDK - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // Need to specify this to prevent junit runner from going deep into our dependencies testInstrumentationRunnerArguments["package"] = "com.google.android.fhir.knowledge" } @@ -83,27 +83,27 @@ dependencies { androidTestImplementation(libs.kotlinx.coroutines.test) androidTestImplementation(libs.truth) - api(Dependencies.HapiFhir.structuresR4) { exclude(module = "junit") } - api(Dependencies.HapiFhir.guavaCaching) + api(libs.hapi.fhir.structures.r4) { exclude(module = "junit") } + api(libs.hapi.fhir.caching.guava) - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) implementation(libs.kotlin.stdlib) implementation(libs.kotlinx.coroutines.core) - implementation(Dependencies.timber) - implementation(Dependencies.http) - implementation(Dependencies.HapiFhir.fhirCoreConvertors) - implementation(Dependencies.apacheCommonsCompress) + implementation(libs.timber) + implementation(libs.http) + implementation(libs.hapi.fhir.core.convertors) + implementation(libs.apache.commons.compress) implementation(libs.androidx.lifecycle.livedata) implementation(libs.androidx.room.room) implementation(libs.androidx.room.runtime) ksp(libs.androidx.room.compiler) - testImplementation(Dependencies.mockitoInline) - testImplementation(Dependencies.mockitoKotlin) - testImplementation(Dependencies.mockWebServer) - testImplementation(Dependencies.robolectric) + testImplementation(libs.mockito.inline) + testImplementation(libs.mockito.kotlin) + testImplementation(libs.mock.web.server) + testImplementation(libs.robolectric) testImplementation(libs.androidx.arch.core.testing) testImplementation(libs.androidx.test.core) testImplementation(libs.junit) diff --git a/workflow-testing/build.gradle.kts b/workflow-testing/build.gradle.kts index 9e1ba37a2d..8ec8fcbe76 100644 --- a/workflow-testing/build.gradle.kts +++ b/workflow-testing/build.gradle.kts @@ -20,9 +20,9 @@ dependencies { compileOnly(libs.opencds.cqf.fhir.utility) compileOnly(project(":engine")) { exclude(module = "truth") } - compileOnly(Dependencies.jsonAssert) - compileOnly(Dependencies.woodstox) - compileOnly(Dependencies.xmlUnit) + compileOnly(libs.json.assert) + compileOnly(libs.woodstox) + compileOnly(libs.xml.unit) compileOnly(libs.junit) compileOnly(libs.truth) diff --git a/workflow/benchmark/build.gradle.kts b/workflow/benchmark/build.gradle.kts index 0fd4f72e71..f0a4eabe8b 100644 --- a/workflow/benchmark/build.gradle.kts +++ b/workflow/benchmark/build.gradle.kts @@ -11,7 +11,7 @@ android { compileSdk = Sdk.COMPILE_SDK defaultConfig { minSdk = Sdk.MIN_SDK - testInstrumentationRunner = Dependencies.androidBenchmarkRunner + testInstrumentationRunner = "androidx.benchmark.junit4.AndroidBenchmarkRunner" } testBuildType = "release" @@ -78,7 +78,7 @@ dependencies { } androidTestImplementation(project(":workflow-testing")) - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) constraints { Dependencies.hapiFhirConstraints().forEach { (libName, constraints) -> diff --git a/workflow/build.gradle.kts b/workflow/build.gradle.kts index cfe08f27e4..07bc44dd4a 100644 --- a/workflow/build.gradle.kts +++ b/workflow/build.gradle.kts @@ -19,7 +19,7 @@ android { compileSdk = Sdk.COMPILE_SDK defaultConfig { minSdk = Sdk.MIN_SDK - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" // Need to specify this to prevent junit runner from going deep into our dependencies testInstrumentationRunnerArguments["package"] = "com.google.android.fhir.workflow" } @@ -78,10 +78,10 @@ afterEvaluate { configureFirebaseTestLabForLibraries() } configurations { all { removeIncompatibleDependencies() } } dependencies { - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) - androidTestImplementation(Dependencies.jsonAssert) - androidTestImplementation(Dependencies.xmlUnit) + androidTestImplementation(libs.json.assert) + androidTestImplementation(libs.xml.unit) androidTestImplementation(libs.androidx.test.core) androidTestImplementation(libs.androidx.test.ext.junit) androidTestImplementation(libs.androidx.test.ext.junit.ktx) @@ -92,12 +92,12 @@ dependencies { androidTestImplementation(libs.truth) androidTestImplementation(project(":workflow-testing")) - api(Dependencies.HapiFhir.structuresR4) { exclude(module = "junit") } - api(Dependencies.HapiFhir.guavaCaching) + api(libs.hapi.fhir.structures.r4) { exclude(module = "junit") } + api(libs.hapi.fhir.caching.guava) - implementation(Dependencies.HapiFhir.guavaCaching) - implementation(Dependencies.timber) - implementation(Dependencies.xerces) + implementation(libs.hapi.fhir.caching.guava) + implementation(libs.timber) + implementation(libs.xerces) implementation(libs.android.fhir.engine) { exclude(module = "truth") } implementation(libs.android.fhir.knowledge) implementation(libs.androidx.core) @@ -107,9 +107,9 @@ dependencies { implementation(libs.opencds.cqf.fhir.cr) implementation(libs.opencds.cqf.fhir.jackson) - testImplementation(Dependencies.jsonAssert) - testImplementation(Dependencies.robolectric) - testImplementation(Dependencies.xmlUnit) + testImplementation(libs.json.assert) + testImplementation(libs.robolectric) + testImplementation(libs.xml.unit) testImplementation(libs.androidx.room.room) testImplementation(libs.androidx.room.runtime) testImplementation(libs.androidx.test.core) diff --git a/workflow_demo/build.gradle.kts b/workflow_demo/build.gradle.kts index e43821dc1a..f6de3f1d82 100644 --- a/workflow_demo/build.gradle.kts +++ b/workflow_demo/build.gradle.kts @@ -13,7 +13,7 @@ android { targetSdk = Sdk.TARGET_SDK versionCode = Releases.WorkflowDemo.versionCode versionName = Releases.WorkflowDemo.versionName - testInstrumentationRunner = Dependencies.androidJunitRunner + testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" } buildTypes { @@ -51,7 +51,7 @@ dependencies { androidTestImplementation(libs.androidx.test.ext.junit) compileOnly(libs.opencds.cqf.fhir.cr) - coreLibraryDesugaring(Dependencies.desugarJdkLibs) + coreLibraryDesugaring(libs.desugar.jdk.libs) implementation(libs.androidx.appcompat) implementation(libs.androidx.constraintlayout) From 57fc39b893333830986ecd72db59fd0c41b739a9 Mon Sep 17 00:00:00 2001 From: Elly Kitoto Date: Mon, 3 Nov 2025 14:14:06 +0300 Subject: [PATCH 2/2] Migrate gradle plugins to toml file Signed-off-by: Elly Kitoto --- buildSrc/src/main/kotlin/Plugins.kt | 13 ------------ catalog/build.gradle.kts | 6 +++--- common/build.gradle.kts | 7 ++++--- contrib/barcode/build.gradle.kts | 7 ++++--- contrib/locationwidget/build.gradle.kts | 7 ++++--- datacapture/build.gradle.kts | 10 ++++----- demo/build.gradle.kts | 6 +++--- document/build.gradle.kts | 4 ++-- engine/benchmarks/app/build.gradle.kts | 8 +++---- .../macrobenchmark/build.gradle.kts | 4 ++-- .../microbenchmark/build.gradle.kts | 6 +++--- engine/build.gradle.kts | 10 ++++----- gradle/libs.versions.toml | 21 +++++++++++++++++++ knowledge/build.gradle.kts | 10 ++++----- workflow-testing/build.gradle.kts | 4 ++-- workflow/benchmark/build.gradle.kts | 6 +++--- workflow/build.gradle.kts | 8 +++---- workflow_demo/build.gradle.kts | 4 ++-- 18 files changed, 76 insertions(+), 65 deletions(-) diff --git a/buildSrc/src/main/kotlin/Plugins.kt b/buildSrc/src/main/kotlin/Plugins.kt index 0f26ed4242..37fa94553e 100644 --- a/buildSrc/src/main/kotlin/Plugins.kt +++ b/buildSrc/src/main/kotlin/Plugins.kt @@ -17,21 +17,9 @@ object Plugins { object BuildPlugins { - const val androidLib = "com.android.library" - const val application = "com.android.application" - const val benchmark = "androidx.benchmark" - const val dokka = "org.jetbrains.dokka" - const val kotlin = "kotlin" - const val kotlinAndroid = "kotlin-android" - const val kotlinCompose = "org.jetbrains.kotlin.plugin.compose" - const val kotlinKsp = "com.google.devtools.ksp" - const val kotlinSerialization = "org.jetbrains.kotlin.plugin.serialization" - const val mavenPublish = "maven-publish" const val fladle = "com.osacky.fladle" - const val navSafeArgs = "androidx.navigation.safeargs.kotlin" const val ruler = "com.spotify.ruler" const val spotless = "com.diffplug.spotless" - const val androidTest = "com.android.test" } // classpath plugins @@ -52,7 +40,6 @@ object Plugins { object Versions { const val androidGradlePlugin = "8.9.2" const val benchmarkPlugin = "1.4.0-rc01" - const val dokka = "1.9.20" const val kspPlugin = "2.1.20-2.0.1" const val kotlin = "2.1.20" } diff --git a/catalog/build.gradle.kts b/catalog/build.gradle.kts index 5c4ff8ca9b..254c51f8d2 100644 --- a/catalog/build.gradle.kts +++ b/catalog/build.gradle.kts @@ -1,7 +1,7 @@ plugins { - id(Plugins.BuildPlugins.application) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.navSafeArgs) + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.androidx.navigation.safeargs) } configureRuler() diff --git a/common/build.gradle.kts b/common/build.gradle.kts index b8e612d652..62e8cad526 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -1,9 +1,10 @@ import Dependencies.removeIncompatibleDependencies plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.mavenPublish) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.dokka) + `maven-publish` jacoco } diff --git a/contrib/barcode/build.gradle.kts b/contrib/barcode/build.gradle.kts index f66991e1a9..f7b4b54c21 100644 --- a/contrib/barcode/build.gradle.kts +++ b/contrib/barcode/build.gradle.kts @@ -1,10 +1,11 @@ import Dependencies.removeIncompatibleDependencies plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.mavenPublish) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + `maven-publish` jacoco + alias(libs.plugins.dokka) } publishArtifact(Releases.Contrib.Barcode) diff --git a/contrib/locationwidget/build.gradle.kts b/contrib/locationwidget/build.gradle.kts index 436810cc7a..c345315201 100644 --- a/contrib/locationwidget/build.gradle.kts +++ b/contrib/locationwidget/build.gradle.kts @@ -1,10 +1,11 @@ import Dependencies.removeIncompatibleDependencies plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.mavenPublish) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + `maven-publish` jacoco + alias(libs.plugins.dokka) } publishArtifact(Releases.Contrib.LocationWidget) diff --git a/datacapture/build.gradle.kts b/datacapture/build.gradle.kts index 14322d6933..cf16969005 100644 --- a/datacapture/build.gradle.kts +++ b/datacapture/build.gradle.kts @@ -2,12 +2,12 @@ import Dependencies.removeIncompatibleDependencies import java.net.URL plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.kotlinCompose) - id(Plugins.BuildPlugins.mavenPublish) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) + `maven-publish` jacoco - id(Plugins.BuildPlugins.dokka).version(Plugins.Versions.dokka) + alias(libs.plugins.dokka) } publishArtifact(Releases.DataCapture) diff --git a/demo/build.gradle.kts b/demo/build.gradle.kts index 164d213c17..295d20666b 100644 --- a/demo/build.gradle.kts +++ b/demo/build.gradle.kts @@ -1,7 +1,7 @@ plugins { - id(Plugins.BuildPlugins.application) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.navSafeArgs) + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.androidx.navigation.safeargs) } configureRuler() diff --git a/document/build.gradle.kts b/document/build.gradle.kts index 64a649c6ad..dfae0300c4 100644 --- a/document/build.gradle.kts +++ b/document/build.gradle.kts @@ -1,6 +1,6 @@ plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) } android { diff --git a/engine/benchmarks/app/build.gradle.kts b/engine/benchmarks/app/build.gradle.kts index 2a994d30ae..0623bb681d 100644 --- a/engine/benchmarks/app/build.gradle.kts +++ b/engine/benchmarks/app/build.gradle.kts @@ -1,8 +1,8 @@ plugins { - id(Plugins.BuildPlugins.application) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.kotlinCompose) - id(Plugins.BuildPlugins.kotlinSerialization) + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.kotlin.compose) + alias(libs.plugins.kotlin.serialization) } android { diff --git a/engine/benchmarks/macrobenchmark/build.gradle.kts b/engine/benchmarks/macrobenchmark/build.gradle.kts index 8e254c8cb7..46a16151cb 100644 --- a/engine/benchmarks/macrobenchmark/build.gradle.kts +++ b/engine/benchmarks/macrobenchmark/build.gradle.kts @@ -1,6 +1,6 @@ plugins { - id(Plugins.BuildPlugins.androidTest) - id(Plugins.BuildPlugins.kotlinAndroid) + alias(libs.plugins.android.test) + alias(libs.plugins.kotlin.android) } android { diff --git a/engine/benchmarks/microbenchmark/build.gradle.kts b/engine/benchmarks/microbenchmark/build.gradle.kts index f561f254b4..30038cfeb0 100644 --- a/engine/benchmarks/microbenchmark/build.gradle.kts +++ b/engine/benchmarks/microbenchmark/build.gradle.kts @@ -1,7 +1,7 @@ plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.benchmark) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.androidx.benchmark) } android { diff --git a/engine/build.gradle.kts b/engine/build.gradle.kts index b69d764ecc..021936c7a4 100644 --- a/engine/build.gradle.kts +++ b/engine/build.gradle.kts @@ -2,12 +2,12 @@ import codegen.GenerateSearchParamsTask import java.net.URL plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.kotlinKsp) - id(Plugins.BuildPlugins.mavenPublish) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.ksp) + `maven-publish` jacoco - id(Plugins.BuildPlugins.dokka).version(Plugins.Versions.dokka) + alias(libs.plugins.dokka) } publishArtifact(Releases.Engine) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fb62f787ba..85dc9282a4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -67,6 +67,14 @@ xerces = "2.12.2" xml-unit = "2.9.1" zxing = "3.4.1" jacoco = "0.8.10" +android-gradle-plugin = "8.9.2" +benchmark-plugin = "1.4.0-rc01" +fladle = "0.17.4" +ksp-plugin = "2.1.20-2.0.1" +navigation-safe-args = "2.6.0" +ruler = "1.2.1" +spotless = "4.17.0" +dokka = "1.9.20" [libraries] accompanist-themeadapter-material3 = { module = "com.google.accompanist:accompanist-themeadapter-material3", version.ref = "accompanist-themeadapter-material3"} @@ -177,3 +185,16 @@ zxing = { module = "com.google.zxing:core", version.ref = "zxing" } androidx-tracing = ["androidx-tracing-tracing", "androidx-tracing-tracing-android", "androidx-tracing-tracing-ktx"] [plugins] +android-application = { id = "com.android.application" } +android-library = { id = "com.android.library" } +android-test = { id = "com.android.test" } +androidx-benchmark = { id = "androidx.benchmark" } +androidx-navigation-safeargs = { id = "androidx.navigation.safeargs.kotlin" } +fladle = { id = "com.osacky.fladle" } +kotlin-android = { id = "org.jetbrains.kotlin.android" } +kotlin-compose = { id = "org.jetbrains.kotlin.plugin.compose" } +kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization" } +ksp = { id = "com.google.devtools.ksp" } +dokka = { id = "org.jetbrains.dokka", version.ref = "dokka" } +ruler = { id = "com.spotify.ruler" } +spotless = { id = "com.diffplug.spotless" } diff --git a/knowledge/build.gradle.kts b/knowledge/build.gradle.kts index 6a122f2c12..c7f5213e1f 100644 --- a/knowledge/build.gradle.kts +++ b/knowledge/build.gradle.kts @@ -2,12 +2,12 @@ import Dependencies.removeIncompatibleDependencies import java.net.URL plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.kotlinKsp) - id(Plugins.BuildPlugins.mavenPublish) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.ksp) + `maven-publish` jacoco - id(Plugins.BuildPlugins.dokka).version(Plugins.Versions.dokka) + alias(libs.plugins.dokka) } publishArtifact(Releases.Knowledge) diff --git a/workflow-testing/build.gradle.kts b/workflow-testing/build.gradle.kts index 8ec8fcbe76..8bdb7b4806 100644 --- a/workflow-testing/build.gradle.kts +++ b/workflow-testing/build.gradle.kts @@ -1,8 +1,8 @@ import Dependencies.removeIncompatibleDependencies plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) } android { diff --git a/workflow/benchmark/build.gradle.kts b/workflow/benchmark/build.gradle.kts index f0a4eabe8b..87b271c530 100644 --- a/workflow/benchmark/build.gradle.kts +++ b/workflow/benchmark/build.gradle.kts @@ -1,9 +1,9 @@ import Dependencies.removeIncompatibleDependencies plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.benchmark) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + alias(libs.plugins.androidx.benchmark) } android { diff --git a/workflow/build.gradle.kts b/workflow/build.gradle.kts index 07bc44dd4a..8bd55b20c0 100644 --- a/workflow/build.gradle.kts +++ b/workflow/build.gradle.kts @@ -3,11 +3,11 @@ import java.net.URL import org.gradle.internal.impldep.org.junit.experimental.categories.Categories.CategoryFilter.exclude plugins { - id(Plugins.BuildPlugins.androidLib) - id(Plugins.BuildPlugins.kotlinAndroid) - id(Plugins.BuildPlugins.mavenPublish) + alias(libs.plugins.android.library) + alias(libs.plugins.kotlin.android) + `maven-publish` jacoco - id(Plugins.BuildPlugins.dokka).version(Plugins.Versions.dokka) + alias(libs.plugins.dokka) } publishArtifact(Releases.Workflow) diff --git a/workflow_demo/build.gradle.kts b/workflow_demo/build.gradle.kts index f6de3f1d82..d0d7325f65 100644 --- a/workflow_demo/build.gradle.kts +++ b/workflow_demo/build.gradle.kts @@ -1,6 +1,6 @@ plugins { - id("com.android.application") - id("org.jetbrains.kotlin.android") + alias(libs.plugins.android.application) + alias(libs.plugins.kotlin.android) } android {