From ec44f8795a8deea1a0c69e8709350b33d74c9ab3 Mon Sep 17 00:00:00 2001 From: Harsh Shandilya Date: Mon, 16 May 2022 08:08:26 +0530 Subject: [PATCH] Refactor Gradle build away from buildscript dependencies --- build-logic/settings.gradle.kts | 25 ++++++++++++--- build.gradle.kts | 17 ++-------- common/build.gradle.kts | 2 +- gradle/libs.versions.toml | 3 +- settings.gradle.kts | 57 ++++++++++++++++++++++++++------- 5 files changed, 71 insertions(+), 33 deletions(-) diff --git a/build-logic/settings.gradle.kts b/build-logic/settings.gradle.kts index e23f9448..c8615df3 100644 --- a/build-logic/settings.gradle.kts +++ b/build-logic/settings.gradle.kts @@ -8,11 +8,28 @@ rootProject.name = "build-logic" dependencyResolutionManagement { repositories { - google() + exclusiveContent { + forRepository(::google) + filter { + includeGroup("androidx.databinding") + includeGroup("com.android") + includeGroup("com.android.tools") + includeGroup("com.android.tools.analytics-library") + includeGroup("com.android.tools.build") + includeGroup("com.android.tools.build.jetifier") + includeGroup("com.android.databinding") + includeGroup("com.android.tools.ddms") + includeGroup("com.android.tools.layoutlib") + includeGroup("com.android.tools.lint") + includeGroup("com.android.tools.utp") + includeGroup("com.google.testing.platform") + } + } + exclusiveContent { + forRepository(::gradlePluginPortal) + filter { includeModule("com.github.ben-manes", "gradle-versions-plugin") } + } mavenCentral() - gradlePluginPortal() { - content { includeModule("com.github.ben-manes", "gradle-versions-plugin") } - } } versionCatalogs { create("libs") { from(files("../gradle/libs.versions.toml")) } } } diff --git a/build.gradle.kts b/build.gradle.kts index 4d7913de..bbacbf96 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,21 +1,8 @@ -@file:Suppress("DSL_SCOPE_VIOLATION", "UnstableApiUsage") - -buildscript { - repositories { - maven { - url = uri("https://storage.googleapis.com/r8-releases/raw") - content { includeModule("com.android.tools", "r8") } - } - } - dependencies { - classpath(libs.r8) - classpath(libs.svg.transcoder) - classpath(libs.javapoet) - } -} +@file:Suppress("DSL_SCOPE_VIOLATION") plugins { id("dev.msfjarvis.claw.spotless") id("dev.msfjarvis.claw.versions") id("dev.msfjarvis.claw.kotlin-common") + alias(libs.plugins.hilt) apply false } diff --git a/common/build.gradle.kts b/common/build.gradle.kts index 4c7c1b19..0aba104d 100644 --- a/common/build.gradle.kts +++ b/common/build.gradle.kts @@ -10,7 +10,7 @@ plugins { alias(libs.plugins.compose) id("dev.msfjarvis.claw.kotlin-common") id("dev.msfjarvis.claw.android-library") - id("org.pushing-pixels.aurora.tools.svgtranscoder.gradle") + alias(libs.plugins.aurora.svg.transcoder) } val transcodeTask = diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e0a22495..3389e668 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -53,7 +53,6 @@ material_motion-core = { module = "io.github.fornewid:material-motion-compose-co material_motion-navigation = { module = "io.github.fornewid:material-motion-compose-navigation", version.ref = "material_motion" } multiplatform-paging = "io.github.kuuuurt:multiplatform-paging:0.4.7" napier = "io.github.aakira:napier:2.5.0" -r8 = "com.android.tools:r8:3.3.28" retrofit-kotlinxSerializationConverter = "com.jakewharton.retrofit:retrofit2-kotlinx-serialization-converter:0.8.0" retrofit-lib = { module = "com.squareup.retrofit2:retrofit", version.ref = "retrofit" } retrofit-mock = { module = "com.squareup.retrofit2:retrofit-mock", version.ref = "retrofit" } @@ -61,9 +60,9 @@ sqldelight-androidDriver = { module = "app.cash.sqldelight:android-driver", vers sqldelight-extensions-coroutines = { module = "app.cash.sqldelight:coroutines-extensions-jvm", version.ref = "sqldelight" } sqldelight-jvmDriver = { module = "app.cash.sqldelight:sqlite-driver", version.ref = "sqldelight" } sqldelight-primitiveAdapters = { module = "app.cash.sqldelight:primitive-adapters", version.ref = "sqldelight" } -svg-transcoder = { module = "org.pushing-pixels:aurora-tools-svg-transcoder-gradle-plugin", version.ref = "aurora" } [plugins] compose = "org.jetbrains.compose:1.1.1" hilt = { id = "com.google.dagger.hilt.android", version.ref = "dagger" } sqldelight = { id = "app.cash.sqldelight", version.ref = "sqldelight" } +aurora-svg-transcoder = { id = "org.pushing-pixels.aurora.tools.svgtranscoder.gradle", version.ref = "aurora" } diff --git a/settings.gradle.kts b/settings.gradle.kts index c3c55d2d..499d73c5 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -2,29 +2,64 @@ pluginManagement { repositories { + exclusiveContent { + forRepository(::google) + filter { + includeGroup("androidx.databinding") + includeGroup("com.android") + includeGroup("com.android.tools") + includeGroup("com.android.tools.analytics-library") + includeGroup("com.android.tools.build") + includeGroup("com.android.tools.build.jetifier") + includeGroup("com.android.databinding") + includeGroup("com.android.tools.ddms") + includeGroup("com.android.tools.layoutlib") + includeGroup("com.android.tools.lint") + includeGroup("com.android.tools.utp") + includeGroup("com.google.testing.platform") + } + } + exclusiveContent { + forRepository { maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") } + filter { includeGroup("org.jetbrains.compose") } + } + exclusiveContent { + forRepository(::gradlePluginPortal) + filter { includeModule("com.github.ben-manes", "gradle-versions-plugin") } + } includeBuild("build-logic") - gradlePluginPortal() mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") { - name = "JetBrains Compose Dev Repository" - content { includeGroupByRegex("org\\.jetbrains\\.compose.*") } - } - google() } } dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { - mavenCentral() - maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") { - name = "JetBrains Compose Dev Repository" - content { + exclusiveContent { + forRepository(::google) + filter { + includeGroup("com.android") + includeGroup("com.android.tools") + includeGroup("com.android.tools.analytics-library") + includeGroup("com.android.tools.build") + includeGroup("com.android.tools.ddms") + includeGroup("com.android.tools.external.com-intellij") + includeGroup("com.android.tools.external.org-jetbrains") + includeGroup("com.android.tools.layoutlib") + includeGroup("com.android.tools.lint") + includeGroup("com.google.android.gms") + includeModule("com.google.android.material", "material") + includeGroupByRegex("androidx.*") + } + } + exclusiveContent { + forRepository { maven("https://maven.pkg.jetbrains.space/public/p/compose/dev") } + filter { includeGroupByRegex("org\\.jetbrains\\.compose.*") includeGroup("org.jetbrains.skiko") } } - google() + mavenCentral() } }