diff --git a/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt b/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt index 97d76475..b9f4e85d 100644 --- a/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt +++ b/src/main/kotlin/BinaryCompatibilityValidatorPlugin.kt @@ -38,17 +38,6 @@ public class BinaryCompatibilityValidatorPlugin : Plugin { for (project in ignored) { require(project in all) { "Cannot find excluded project $project in all projects: $all" } } - if (extension.klib.enabled) { - try { - LibraryAbiReader.javaClass - } catch (e: NoClassDefFoundError) { - throw IllegalStateException( - "KLib validation is not available. " + - "Make sure the project uses at least Kotlin 1.9.20 or disable KLib validation " + - "by setting apiValidation.klib.enabled to false", e - ) - } - } } } diff --git a/src/main/kotlin/KotlinKlibAbiBuildTask.kt b/src/main/kotlin/KotlinKlibAbiBuildTask.kt index 7c0861f9..95cd877e 100644 --- a/src/main/kotlin/KotlinKlibAbiBuildTask.kt +++ b/src/main/kotlin/KotlinKlibAbiBuildTask.kt @@ -11,6 +11,8 @@ import org.gradle.api.file.RegularFileProperty import org.gradle.api.provider.Property import org.gradle.api.tasks.* import org.gradle.workers.WorkAction +import org.jetbrains.kotlin.library.abi.ExperimentalLibraryAbiReader +import org.jetbrains.kotlin.library.abi.LibraryAbiReader /** * Generates a text file with a KLib ABI dump for a single klib. @@ -76,8 +78,18 @@ internal interface KlibAbiBuildParameters : BuildParametersBase { } internal abstract class KlibAbiBuildWorker : WorkAction { - @OptIn(ExperimentalBCVApi::class) + @OptIn(ExperimentalBCVApi::class, ExperimentalLibraryAbiReader::class) override fun execute() { + try { + LibraryAbiReader.javaClass + } catch (e: NoClassDefFoundError) { + error( + "KLib validation is not available. " + + "Make sure the project uses at least Kotlin 1.9.20 or disable KLib validation " + + "by setting apiValidation.klib.enabled to false" + ) + } + val outputFile = parameters.outputAbiFile.asFile.get() outputFile.delete() outputFile.parentFile.mkdirs()