diff --git a/buildSrc/src/main/kotlin/artifacts.kt b/buildSrc/src/main/kotlin/artifacts.kt index 7b6aeef8c0c..0c3e93430d1 100644 --- a/buildSrc/src/main/kotlin/artifacts.kt +++ b/buildSrc/src/main/kotlin/artifacts.kt @@ -47,26 +47,29 @@ fun Project.testsJar(body: Jar.() -> Unit = {}): Jar { } } -var Project.artifactsRemovedDiagnosticFlag: Boolean - get() = extra.has("artifactsRemovedDiagnosticFlag") && extra["artifactsRemovedDiagnosticFlag"] == true - set(value) { - extra["artifactsRemovedDiagnosticFlag"] = value - } +fun Project.setPublishableArtifact( + jarTask: TaskProvider +) { + addArtifact("runtimeElements", jarTask) + addArtifact("apiElements", jarTask) + addArtifact("archives", jarTask) +} -fun Project.removeArtifacts(configuration: Configuration, task: Task) { - configuration.artifacts.removeAll { artifact -> - artifact.file in task.outputs.files - } - - artifactsRemovedDiagnosticFlag = true +fun removeJarTaskArtifact( + jarTask: TaskProvider +): Configuration.() -> Unit = { + val jarFile = jarTask.get().archiveFile.get().asFile + artifacts.removeIf { it.file == jarFile } } fun Project.noDefaultJar() { - tasks.named("jar").configure { - configurations.forEach { cfg -> - removeArtifacts(cfg, this) - } + val jarTask = tasks.named("jar") { + enabled = false } + + configurations.named("apiElements", removeJarTaskArtifact(jarTask)) + configurations.named("runtimeElements", removeJarTaskArtifact(jarTask)) + configurations.named("archives", removeJarTaskArtifact(jarTask)) } fun Jar.addEmbeddedRuntime() { diff --git a/libraries/scripting/dependencies-maven-all/build.gradle.kts b/libraries/scripting/dependencies-maven-all/build.gradle.kts index 37450504b31..44baff8217f 100644 --- a/libraries/scripting/dependencies-maven-all/build.gradle.kts +++ b/libraries/scripting/dependencies-maven-all/build.gradle.kts @@ -147,6 +147,4 @@ val resultJar by task { } -addArtifact("runtime", resultJar) -addArtifact("runtimeElements", resultJar) -addArtifact("archives", resultJar) +setPublishableArtifact(resultJar) diff --git a/libraries/tools/kotlin-main-kts/build.gradle.kts b/libraries/tools/kotlin-main-kts/build.gradle.kts index 559694ed83c..1ac4de07d13 100644 --- a/libraries/tools/kotlin-main-kts/build.gradle.kts +++ b/libraries/tools/kotlin-main-kts/build.gradle.kts @@ -121,10 +121,6 @@ val resultJar by task { } } -addArtifact("apiElements", resultJar) -addArtifact("runtimeElements", resultJar) -addArtifact("archives", resultJar) - +setPublishableArtifact(resultJar) sourcesJar() - javadocJar() diff --git a/plugins/jvm-abi-gen/embeddable/build.gradle.kts b/plugins/jvm-abi-gen/embeddable/build.gradle.kts index bbd457133ed..34dbbe91b06 100644 --- a/plugins/jvm-abi-gen/embeddable/build.gradle.kts +++ b/plugins/jvm-abi-gen/embeddable/build.gradle.kts @@ -12,7 +12,6 @@ dependencies { publish() -noDefaultJar() runtimeJar(rewriteDefaultJarDepsToShadedCompiler()) sourcesJar() diff --git a/prepare/compiler-embeddable/build.gradle.kts b/prepare/compiler-embeddable/build.gradle.kts index f5a3f33c4a5..9cd91d0af54 100644 --- a/prepare/compiler-embeddable/build.gradle.kts +++ b/prepare/compiler-embeddable/build.gradle.kts @@ -40,8 +40,6 @@ sourceSets { "test" { projectDefault() } } -publish() - // dummy is used for rewriting dependencies to the shaded packages in the embeddable compiler compilerDummyJar(compilerDummyForDependenciesRewriting("compilerDummy") { archiveClassifier.set("dummy") @@ -54,6 +52,10 @@ val runtimeJar = runtimeJar(embeddableCompiler()) { mergeServiceFiles() } +publish { + setArtifacts(listOf(runtimeJar)) +} + sourcesJar { val compilerTask = project(":kotlin-compiler").tasks.named("sourcesJar") dependsOn(compilerTask) diff --git a/prepare/ide-plugin-dependencies/kotlin-backend-native-for-ide/build.gradle.kts b/prepare/ide-plugin-dependencies/kotlin-backend-native-for-ide/build.gradle.kts index 8fc778beae6..282bdd7457d 100644 --- a/prepare/ide-plugin-dependencies/kotlin-backend-native-for-ide/build.gradle.kts +++ b/prepare/ide-plugin-dependencies/kotlin-backend-native-for-ide/build.gradle.kts @@ -79,9 +79,7 @@ idePluginDependency { } } - addArtifact("runtime", resultJar) - addArtifact("runtimeElements", resultJar) - addArtifact("archives", resultJar) + setPublishableArtifact(resultJar) publish()