From 3d42b9612af226b05709995dfbc72fec307f8380 Mon Sep 17 00:00:00 2001 From: Goooler Date: Sat, 27 Jul 2024 17:45:22 +0800 Subject: [PATCH] Add min Gradle version checker --- src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt b/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt index b9f4e85d..1dd5cec4 100644 --- a/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt +++ b/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt @@ -11,6 +11,7 @@ import org.gradle.api.artifacts.Configuration import org.gradle.api.plugins.* import org.gradle.api.provider.* import org.gradle.api.tasks.* +import org.gradle.util.GradleVersion import org.jetbrains.kotlin.gradle.dsl.* import org.jetbrains.kotlin.gradle.plugin.* import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinNativeTarget @@ -20,10 +21,17 @@ import org.jetbrains.kotlin.library.abi.LibraryAbiReader import java.io.* import java.util.* +private const val MIN_GRADLE_VERSION = "8.2" + @OptIn(ExperimentalBCVApi::class, ExperimentalLibraryAbiReader::class) public class BinaryCompatibilityValidatorPlugin : Plugin { override fun apply(target: Project): Unit = with(target) { + check(GradleVersion.current() > GradleVersion.version(MIN_GRADLE_VERSION)) { + "Binary Compatibility Validator plugin requires Gradle version $MIN_GRADLE_VERSION or higher, " + + "the current version is ${GradleVersion.current()}." + } + val extension = extensions.create("apiValidation", ApiValidationExtension::class.java) validateExtension(extension) allprojects {