@@ -4,6 +4,7 @@ package com.ensody.buildlogic
4
4
5
5
import com.android.build.gradle.LibraryExtension
6
6
import org.gradle.api.Project
7
+ import org.gradle.api.plugins.JavaPluginExtension
7
8
import org.gradle.api.publish.PublishingExtension
8
9
import org.gradle.api.publish.maven.MavenPomLicenseSpec
9
10
import org.gradle.api.publish.maven.MavenPublication
@@ -19,6 +20,7 @@ import org.gradle.kotlin.dsl.withType
19
20
import org.gradle.plugins.signing.Sign
20
21
import org.gradle.plugins.signing.SigningExtension
21
22
import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
23
+ import org.jetbrains.kotlin.gradle.dsl.KotlinJvmExtension
22
24
import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension
23
25
24
26
fun Project.setupPublication (
@@ -53,15 +55,31 @@ fun Project.setupPublication(
53
55
publishing {
54
56
withSourcesJar(withSources)
55
57
}
58
+ } ? : extensions.findByType<KotlinJvmExtension >()?.apply {
59
+ if (withSources) {
60
+ extensions.findByType<JavaPluginExtension >()?.withSourcesJar()
61
+ }
62
+ configure<PublishingExtension > {
63
+ if (pluginManager.hasPlugin(" java-gradle-plugin" )) return @configure
64
+ publications {
65
+ create<MavenPublication >(" maven" ) {
66
+ from(components.getByName(" java" ))
67
+ }
68
+ }
69
+ }
56
70
}
57
71
58
72
if (withJavadocJar) {
59
- val emptyJar = tasks.register<Jar >(" emptyJar" ) {
60
- archiveAppendix = " empty"
61
- }
62
- configure<PublishingExtension > {
63
- publications.withType<MavenPublication > {
64
- artifact(emptyJar) { classifier = " javadoc" }
73
+ if (extensions.findByType<KotlinMultiplatformExtension >() == null ) {
74
+ extensions.findByType<JavaPluginExtension >()?.apply { withJavadocJar() }
75
+ } else {
76
+ val emptyJar = tasks.register<Jar >(" emptyJar" ) {
77
+ archiveAppendix = " empty"
78
+ }
79
+ configure<PublishingExtension > {
80
+ publications.withType<MavenPublication > {
81
+ artifact(emptyJar) { classifier = " javadoc" }
82
+ }
65
83
}
66
84
}
67
85
}
0 commit comments