diff --git a/buildSrc/src/main/kotlin/artifacts.kt b/buildSrc/src/main/kotlin/artifacts.kt index 51ef5bdd83e..d4b20f92ada 100644 --- a/buildSrc/src/main/kotlin/artifacts.kt +++ b/buildSrc/src/main/kotlin/artifacts.kt @@ -176,6 +176,28 @@ fun Project.javadocJar(body: Jar.() -> Unit = {}): TaskProvider { return javadocTask } +fun Project.modularJar(body: Jar.() -> Unit): TaskProvider { + val modularJar = configurations.maybeCreate("modularJar").apply { + attributes { + attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME)) + } + } + + val modularJarTask = getOrCreateTask("modularJar") { + archiveClassifier.set("modular") + + body() + } + + addArtifact("modularJar", modularJarTask) + addArtifact("archives", modularJarTask) + + val javaComponent = components.findByName("java") as AdhocComponentWithVariants + javaComponent.addVariantsFromConfiguration(modularJar) { } + + return modularJarTask +} + fun Project.standardPublicJars() { runtimeJar() diff --git a/libraries/reflect/build.gradle.kts b/libraries/reflect/build.gradle.kts index 93a5e223fea..578ad87c942 100644 --- a/libraries/reflect/build.gradle.kts +++ b/libraries/reflect/build.gradle.kts @@ -39,12 +39,6 @@ embedded.isTransitive = false configurations.getByName("compileOnly").extendsFrom(embedded) val mainJar by configurations.creating -val modularJar by configurations.creating { - attributes { - attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage.JAVA_RUNTIME)) - } -} - dependencies { compile(kotlinStdlib()) @@ -220,9 +214,10 @@ val result by task { callGroovy("manifestAttributes", manifest, project, "Main", true) } -val modularJarTask by task { +javadocJar() + +modularJar { dependsOn(intermediate) - archiveClassifier.set("modular") from { zipTree(intermediate.get().singleOutputFile()) } @@ -244,12 +239,4 @@ artifacts { builtBy(result) } } - - add("archives", modularJarTask) - add(modularJar.name, modularJarTask) } - -val javaComponent = components.findByName("java") as AdhocComponentWithVariants -javaComponent.addVariantsFromConfiguration(modularJar) { } - -javadocJar()