refactor(build): move dependency updates to a Settings plugin

This commit is contained in:
Harsh Shandilya 2023-07-12 15:24:40 +05:30
parent 79773dbd7a
commit ae9f56e965
No known key found for this signature in database
3 changed files with 27 additions and 18 deletions

View file

@ -5,18 +5,21 @@ import com.github.benmanes.gradle.versions.updates.DependencyUpdatesTask
import nl.littlerobots.vcu.plugin.VersionCatalogUpdateExtension
import nl.littlerobots.vcu.plugin.VersionCatalogUpdatePlugin
import org.gradle.api.Plugin
import org.gradle.api.Project
import org.gradle.api.initialization.Settings
import org.gradle.kotlin.dsl.apply
import org.gradle.kotlin.dsl.configure
import org.gradle.kotlin.dsl.withType
@Suppress("Unused")
class DependencyUpdatesPlugin : Plugin<Project> {
class DependencyUpdatesPlugin : Plugin<Settings> {
override fun apply(project: Project) {
project.pluginManager.apply(VersionsPlugin::class)
project.pluginManager.apply(VersionCatalogUpdatePlugin::class)
project.tasks.withType<DependencyUpdatesTask> {
override fun apply(settings: Settings) {
settings.gradle.allprojects {
if (rootProject == this) {
pluginManager.apply(VersionCatalogUpdatePlugin::class)
extensions.configure<VersionCatalogUpdateExtension> { keep.keepUnusedLibraries.set(true) }
pluginManager.apply(VersionsPlugin::class)
tasks.withType<DependencyUpdatesTask> {
rejectVersionIf {
when (candidate.group) {
"commons-codec",
@ -26,8 +29,7 @@ class DependencyUpdatesPlugin : Plugin<Project> {
}
checkForGradleUpdate = false
}
project.extensions.configure<VersionCatalogUpdateExtension> {
keep.keepUnusedLibraries.set(true)
}
}
}
}

View file

@ -6,6 +6,5 @@ plugins {
id("com.github.android-password-store.git-hooks")
id("com.github.android-password-store.kotlin-common")
id("com.github.android-password-store.ktfmt")
id("com.github.android-password-store.versions")
alias(libs.plugins.hilt) apply false
}

View file

@ -8,7 +8,6 @@ rootProject.name = "APS"
// Plugin repositories
pluginManagement {
plugins { id("org.gradle.toolchains.foojay-resolver-convention") version "0.6.0" }
repositories {
includeBuild("build-logic")
exclusiveContent {
@ -43,6 +42,11 @@ pluginManagement {
includeModule("com.gradle", "gradle-enterprise-gradle-plugin")
includeModule("com.gradle.enterprise", "com.gradle.enterprise.gradle.plugin")
includeModule("me.tylerbwong.gradle.metalava", "plugin")
includeModule(
"org.gradle.toolchains.foojay-resolver-convention",
"org.gradle.toolchains.foojay-resolver-convention.gradle.plugin",
)
includeModule("org.gradle.toolchains", "foojay-resolver")
}
}
exclusiveContent {
@ -53,7 +57,11 @@ pluginManagement {
}
}
plugins { id("com.gradle.enterprise") version "3.13.4" }
plugins {
id("org.gradle.toolchains.foojay-resolver-convention") version "0.6.0"
id("com.gradle.enterprise") version "3.13.4"
id("com.github.android-password-store.versions")
}
gradleEnterprise {
buildScan {