diff --git a/libraries/tools/binary-compatibility-validator/build.gradle b/libraries/tools/binary-compatibility-validator/build.gradle index 9d4408e5545..d3f1817ce0c 100644 --- a/libraries/tools/binary-compatibility-validator/build.gradle +++ b/libraries/tools/binary-compatibility-validator/build.gradle @@ -15,7 +15,7 @@ dependencies { testArtifacts project(':kotlin-stdlib-jdk8') testArtifacts project(':kotlin-reflect') testArtifacts project(':kotlin-gradle-plugin-idea') - testArtifacts project(':kotlin-gradle-plugin-idea-proto') + testArtifacts project(path: ":kotlin-gradle-plugin-idea-proto", configuration: "binaryValidationApiElements") testArtifacts project(':kotlin-tooling-core') testCompileOnly("org.ow2.asm:asm-tree:9.0") { diff --git a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt index 78234ab1f16..61737f097b3 100644 --- a/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt +++ b/libraries/tools/binary-compatibility-validator/src/test/kotlin/org.jetbrains.kotlin.tools.tests/RuntimePublicAPITest.kt @@ -42,7 +42,7 @@ class RuntimePublicAPITest { @Test fun kotlinGradlePluginIdeaProto() { snapshotAPIAndCompare( - "../kotlin-gradle-plugin-idea-proto/build/libs", "kotlin-gradle-plugin-idea-proto(?!-[-a-z]+)", + "../kotlin-gradle-plugin-idea-proto/build/libs", "kotlin-gradle-plugin-idea-proto-api(?!-[-a-z]+)", nonPublicAnnotations = listOf("org/jetbrains/kotlin/gradle/kpm/idea/InternalKotlinGradlePluginApi") ) } diff --git a/libraries/tools/kotlin-gradle-plugin-idea-proto/build.gradle.kts b/libraries/tools/kotlin-gradle-plugin-idea-proto/build.gradle.kts index c3f67390dc0..e1e93b1289c 100644 --- a/libraries/tools/kotlin-gradle-plugin-idea-proto/build.gradle.kts +++ b/libraries/tools/kotlin-gradle-plugin-idea-proto/build.gradle.kts @@ -56,6 +56,21 @@ runtimeJar(tasks.register("shadowJar")) { publish() +/* Setup configuration for binary compatibility tests */ +run { + val binaryValidationApiElements by configurations.creating { + isCanBeResolved = false + isCanBeConsumed = true + } + + val binaryValidationApiJar = tasks.register("binaryValidationApiJar") { + this.archiveBaseName.set(project.name + "-api") + from(mainSourceSet.output) + } + + artifacts.add(binaryValidationApiElements.name, binaryValidationApiJar) +} + tasks.register("protoc") { val protoSources = file("src/main/proto") val javaOutput = file("src/generated/java/")