From 6e20e03cbcc1fbd2536acdad9612eb0b073920a4 Mon Sep 17 00:00:00 2001 From: Vyacheslav Gerasimov Date: Wed, 26 Jun 2019 16:18:10 +0300 Subject: [PATCH] Build: Reuse archive from project build logic for building jars --- gradle/jps.gradle.kts | 40 +++++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 19 deletions(-) diff --git a/gradle/jps.gradle.kts b/gradle/jps.gradle.kts index 3903f2e858f..3ca0240e72c 100644 --- a/gradle/jps.gradle.kts +++ b/gradle/jps.gradle.kts @@ -345,23 +345,28 @@ fun NamedDomainObjectContainer.ideaPlugin() { fun NamedDomainObjectContainer.jarFromProject(project: Project, name: String? = null, configureAction: RecursiveArtifact.() -> Unit = {}) { val jarName = name ?: project.name + ".jar" create(jarName) { - archive(jarName) { - (project.tasks["jar"] as? Jar)?.let { jar -> - val manifestPath = jar.temporaryDir.resolve("MANIFEST.MF") - jar.manifest.writeTo(manifestPath) - directory("META-INF") { - file(manifestPath) - } - } - - if (project.sourceSets.names.contains("main")) { - moduleOutput(moduleName(project.path)) - } + archiveFromProject(project, jarName, configureAction) + } +} - jarContentsFromEmbeddedConfiguration(project) - - configureAction() +fun RecursiveArtifact.archiveFromProject(project: Project, name: String? = null, configureAction: RecursiveArtifact.() -> Unit = {}) { + val jarName = name ?: project.name + ".jar" + archive(jarName) { + (project.tasks["jar"] as? Jar)?.let { jar -> + val manifestPath = jar.temporaryDir.resolve("MANIFEST.MF") + jar.manifest.writeTo(manifestPath) + directory("META-INF") { + file(manifestPath) + } } + + if (project.sourceSets.names.contains("main")) { + moduleOutput(moduleName(project.path)) + } + + jarContentsFromEmbeddedConfiguration(project) + + configureAction() } } @@ -431,10 +436,7 @@ fun RecursiveArtifact.jarsFromConfiguration(configuration: Configuration, rename if (it.projectName in jarArtifactProjects) { artifact(artifactName) } else { - archive(artifactName) { - moduleOutput(moduleName(it.projectPath)) - jarContentsFromEmbeddedConfiguration(project(it.projectPath)) - } + archiveFromProject(project(it.projectPath), artifactName) } } }