diff options
author | Harsh Shandilya <me@msfjarvis.dev> | 2022-06-30 21:33:59 +0530 |
---|---|---|
committer | Harsh Shandilya <me@msfjarvis.dev> | 2022-07-07 11:28:58 +0530 |
commit | 8a9ebf3f7e0af5f7a7ccd67b6902a94b0d8c687b (patch) | |
tree | 5c9598f92fc6321acab66d37f7c93e444bcbc532 /build-logic | |
parent | 83fc3e6b874865a44be339ff363776e58d9ad8fe (diff) |
build-logic: introduce versions plugin
Diffstat (limited to 'build-logic')
3 files changed, 43 insertions, 0 deletions
diff --git a/build-logic/kotlin-plugins/build.gradle.kts b/build-logic/kotlin-plugins/build.gradle.kts index bfd54dc0..78359ea6 100644 --- a/build-logic/kotlin-plugins/build.gradle.kts +++ b/build-logic/kotlin-plugins/build.gradle.kts @@ -50,6 +50,10 @@ gradlePlugin { id = "com.github.android-password-store.spotless" implementationClass = "dev.msfjarvis.aps.gradle.SpotlessPlugin" } + register("versions") { + id = "com.github.android-password-store.versions" + implementationClass = "dev.msfjarvis.aps.gradle.DependencyUpdatesPlugin" + } } } @@ -58,4 +62,6 @@ dependencies { implementation(libs.build.binarycompat) implementation(libs.build.kotlin) implementation(libs.build.spotless) + implementation(libs.build.vcu) + implementation(libs.build.versions) } diff --git a/build-logic/kotlin-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/DependencyUpdatesPlugin.kt b/build-logic/kotlin-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/DependencyUpdatesPlugin.kt new file mode 100644 index 00000000..e3d6e761 --- /dev/null +++ b/build-logic/kotlin-plugins/src/main/kotlin/dev/msfjarvis/aps/gradle/DependencyUpdatesPlugin.kt @@ -0,0 +1,33 @@ +package dev.msfjarvis.aps.gradle + +import com.github.benmanes.gradle.versions.VersionsPlugin +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.kotlin.dsl.apply +import org.gradle.kotlin.dsl.getByType +import org.gradle.kotlin.dsl.withType + +@Suppress("Unused") +class DependencyUpdatesPlugin : Plugin<Project> { + override fun apply(project: Project) { + project.pluginManager.apply(VersionsPlugin::class) + project.pluginManager.apply(VersionCatalogUpdatePlugin::class) + project.tasks.withType<DependencyUpdatesTask>().configureEach { + rejectVersionIf { + when (candidate.group) { + "commons-codec", + "com.android.tools.build", + "org.eclipse.jgit" -> true + else -> false + } + } + checkForGradleUpdate = false + } + project.extensions.getByType<VersionCatalogUpdateExtension>().run { + keep.keepUnusedLibraries.set(true) + } + } +} diff --git a/build-logic/settings.gradle.kts b/build-logic/settings.gradle.kts index be6946c3..f4d7dc57 100644 --- a/build-logic/settings.gradle.kts +++ b/build-logic/settings.gradle.kts @@ -25,6 +25,10 @@ dependencyResolutionManagement { includeGroup("com.google.testing.platform") } } + exclusiveContent { + forRepository(::gradlePluginPortal) + filter { includeModule("com.github.ben-manes", "gradle-versions-plugin") } + } mavenCentral() } versionCatalogs { |