From 5babf89245a66d9f9ab126a531c5856e13ad39c9 Mon Sep 17 00:00:00 2001 From: Ilya Chernikov Date: Thu, 12 Oct 2017 14:04:15 +0200 Subject: [PATCH] Remove original jar artifact from archives when adding a new one by runtimeJar tasks --- buildSrc/src/main/kotlin/artifacts.kt | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/kotlin/artifacts.kt b/buildSrc/src/main/kotlin/artifacts.kt index 0e090360891..97f69be42e0 100644 --- a/buildSrc/src/main/kotlin/artifacts.kt +++ b/buildSrc/src/main/kotlin/artifacts.kt @@ -1,14 +1,12 @@ @file:Suppress("unused") // usages in build scripts are not tracked properly import org.gradle.api.* -import org.gradle.api.artifacts.ConfigurablePublishArtifact +import org.gradle.api.artifacts.* import org.gradle.api.tasks.* import org.gradle.kotlin.dsl.* -import org.gradle.api.artifacts.Configuration -import org.gradle.api.artifacts.ConfigurationContainer -import org.gradle.api.artifacts.Dependency import org.gradle.api.file.DuplicatesStrategy import org.gradle.api.file.FileCollection +import org.gradle.api.internal.artifacts.publish.ArchivePublishArtifact import org.gradle.api.plugins.BasePluginConvention import org.gradle.api.plugins.JavaPluginConvention import org.gradle.api.tasks.javadoc.Javadoc @@ -63,6 +61,9 @@ fun Project.runtimeJarArtifactBy(task: Task, artifactRef: T, body: Configurab fun Project.runtimeJar(task: T, body: T.() -> Unit = {}): T { extra["runtimeJarTask"] = task + tasks.findByName("jar")?.let { defaultJarTask -> + configurations.getOrCreate("archives").artifacts.removeAll { (it as? ArchivePublishArtifact)?.archiveTask?.let { it == defaultJarTask } ?: false } + } return task.apply { setupPublicJar() duplicatesStrategy = DuplicatesStrategy.EXCLUDE @@ -131,7 +132,7 @@ fun Project.ideaPlugin(subdir: String = "lib", body: AbstractCopyTask.() -> Unit task("idea-plugin") { dependsOn(pluginTask) -} + } return pluginTask }