diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index ae553aa3c9a..39269ebb7a1 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -96,6 +96,7 @@ repositories { dependencies { implementation(kotlin("stdlib", embeddedKotlinVersion)) + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:${project.bootstrapKotlinVersion}") implementation("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.17") implementation("com.gradle.publish:plugin-publish-plugin:0.11.0") diff --git a/buildSrc/src/main/kotlin/artifacts.kt b/buildSrc/src/main/kotlin/artifacts.kt index 123426315bd..5cabcb6db73 100644 --- a/buildSrc/src/main/kotlin/artifacts.kt +++ b/buildSrc/src/main/kotlin/artifacts.kt @@ -27,6 +27,7 @@ import org.gradle.api.tasks.javadoc.Javadoc import org.gradle.jvm.tasks.Jar import org.gradle.api.artifacts.dsl.DependencyHandler import org.gradle.kotlin.dsl.* +import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetContainer import plugins.KotlinBuildPublishingPlugin @@ -129,10 +130,16 @@ fun Project.sourcesJar(body: Jar.() -> Unit = {}): TaskProvider { } val sourcesJar = getOrCreateTask("sourcesJar") { + fun Project.mainJavaPluginSourceSet() = findJavaPluginConvention()?.sourceSets?.findByName("main") + fun Project.mainKotlinSourceSet() = + (extensions.findByName("kotlin") as? KotlinSourceSetContainer)?.sourceSets?.findByName("main") + + fun Project.sources() = mainJavaPluginSourceSet()?.allSource ?: mainKotlinSourceSet()?.kotlin + duplicatesStrategy = DuplicatesStrategy.EXCLUDE archiveClassifier.set("sources") - from(project.mainSourceSet.allSource) + from(project.sources()) project.configurations.findByName("embedded")?.let { embedded -> from(provider { @@ -141,10 +148,7 @@ fun Project.sourcesJar(body: Jar.() -> Unit = {}): TaskProvider { .map { it.id.componentIdentifier } .filterIsInstance() .mapNotNull { - project(it.projectPath) - .findJavaPluginConvention() - ?.mainSourceSet - ?.allSource + project(it.projectPath).sources() } }) }