Add methods to also embed sources and javadoc from embedded dependencies
Introduced approach is not ideal as it introduces direct inter-project call breaking project isolation. But proper solution requires quite a lot of changes and should be done separately. ^KT-52811 In Progress
This commit is contained in:
committed by
Space Team
parent
cdec1e6c62
commit
e1bd7d7b5d
@@ -183,6 +183,26 @@ fun Project.sourcesJar(body: Jar.() -> Unit = {}): TaskProvider<Jar> {
|
|||||||
return sourcesJar
|
return sourcesJar
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Also embeds into final '-sources.jar' file source files from embedded dependencies.
|
||||||
|
*/
|
||||||
|
fun Project.sourcesJarWithSourcesFromEmbedded(
|
||||||
|
vararg embeddedDepSourcesJarTasks: TaskProvider<out Jar>,
|
||||||
|
body: Jar.() -> Unit = {},
|
||||||
|
): TaskProvider<Jar> {
|
||||||
|
val sourcesJarTask = sourcesJar(body)
|
||||||
|
|
||||||
|
sourcesJarTask.configure {
|
||||||
|
val archiveOperations = serviceOf<ArchiveOperations>()
|
||||||
|
embeddedDepSourcesJarTasks.forEach { embeddedSourceJarTask ->
|
||||||
|
dependsOn(embeddedSourceJarTask)
|
||||||
|
from(embeddedSourceJarTask.map { archiveOperations.zipTree(it.archiveFile) })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return sourcesJarTask
|
||||||
|
}
|
||||||
|
|
||||||
fun Jar.addEmbeddedSources() {
|
fun Jar.addEmbeddedSources() {
|
||||||
project.configurations.findByName("embedded")?.let { embedded ->
|
project.configurations.findByName("embedded")?.let { embedded ->
|
||||||
val allSources by lazy {
|
val allSources by lazy {
|
||||||
@@ -222,6 +242,27 @@ fun Project.javadocJar(body: Jar.() -> Unit = {}): TaskProvider<Jar> {
|
|||||||
return javadocTask
|
return javadocTask
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Also embeds into final '-javadoc.jar' file javadoc files from embedded dependencies.
|
||||||
|
*/
|
||||||
|
fun Project.javadocJarWithJavadocFromEmbedded(
|
||||||
|
vararg embeddedDepJavadocJarTasks: TaskProvider<out Jar>,
|
||||||
|
body: Jar.() -> Unit = {},
|
||||||
|
): TaskProvider<Jar> {
|
||||||
|
val javadocJarTask = javadocJar(body)
|
||||||
|
|
||||||
|
javadocJarTask.configure {
|
||||||
|
val archiveOperations = serviceOf<ArchiveOperations>()
|
||||||
|
embeddedDepJavadocJarTasks.forEach { embeddedJavadocJarTask ->
|
||||||
|
dependsOn(embeddedJavadocJarTask)
|
||||||
|
from(embeddedJavadocJarTask.map { archiveOperations.zipTree(it.archiveFile) })
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return javadocJarTask
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
fun Project.standardPublicJars() {
|
fun Project.standardPublicJars() {
|
||||||
runtimeJar()
|
runtimeJar()
|
||||||
sourcesJar()
|
sourcesJar()
|
||||||
|
|||||||
Reference in New Issue
Block a user