Build: Use sources from kotlin mpp source set in sourcesJar helper
This commit is contained in:
@@ -96,6 +96,7 @@ repositories {
|
|||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(kotlin("stdlib", embeddedKotlinVersion))
|
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("org.jetbrains.kotlin:kotlin-build-gradle-plugin:0.0.17")
|
||||||
implementation("com.gradle.publish:plugin-publish-plugin:0.11.0")
|
implementation("com.gradle.publish:plugin-publish-plugin:0.11.0")
|
||||||
|
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ import org.gradle.api.tasks.javadoc.Javadoc
|
|||||||
import org.gradle.jvm.tasks.Jar
|
import org.gradle.jvm.tasks.Jar
|
||||||
import org.gradle.api.artifacts.dsl.DependencyHandler
|
import org.gradle.api.artifacts.dsl.DependencyHandler
|
||||||
import org.gradle.kotlin.dsl.*
|
import org.gradle.kotlin.dsl.*
|
||||||
|
import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSetContainer
|
||||||
import plugins.KotlinBuildPublishingPlugin
|
import plugins.KotlinBuildPublishingPlugin
|
||||||
|
|
||||||
|
|
||||||
@@ -129,10 +130,16 @@ fun Project.sourcesJar(body: Jar.() -> Unit = {}): TaskProvider<Jar> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
val sourcesJar = getOrCreateTask<Jar>("sourcesJar") {
|
val sourcesJar = getOrCreateTask<Jar>("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
|
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||||
archiveClassifier.set("sources")
|
archiveClassifier.set("sources")
|
||||||
|
|
||||||
from(project.mainSourceSet.allSource)
|
from(project.sources())
|
||||||
|
|
||||||
project.configurations.findByName("embedded")?.let { embedded ->
|
project.configurations.findByName("embedded")?.let { embedded ->
|
||||||
from(provider {
|
from(provider {
|
||||||
@@ -141,10 +148,7 @@ fun Project.sourcesJar(body: Jar.() -> Unit = {}): TaskProvider<Jar> {
|
|||||||
.map { it.id.componentIdentifier }
|
.map { it.id.componentIdentifier }
|
||||||
.filterIsInstance<ProjectComponentIdentifier>()
|
.filterIsInstance<ProjectComponentIdentifier>()
|
||||||
.mapNotNull {
|
.mapNotNull {
|
||||||
project(it.projectPath)
|
project(it.projectPath).sources()
|
||||||
.findJavaPluginConvention()
|
|
||||||
?.mainSourceSet
|
|
||||||
?.allSource
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user