Build: Add sources and javadocs to Kotlin Plugin publication

This commit is contained in:
Vyacheslav Gerasimov
2019-10-29 20:43:45 +03:00
parent 579645bcfa
commit 3b088818a5
15 changed files with 63 additions and 6 deletions
+3 -4
View File
@@ -10,10 +10,7 @@ import org.gradle.api.plugins.JavaPluginConvention
import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.SourceSetContainer import org.gradle.api.tasks.SourceSetContainer
import org.gradle.api.tasks.SourceSetOutput import org.gradle.api.tasks.SourceSetOutput
import org.gradle.kotlin.dsl.creating import org.gradle.kotlin.dsl.*
import org.gradle.kotlin.dsl.extra
import org.gradle.kotlin.dsl.registering
import org.gradle.kotlin.dsl.the
import java.io.File import java.io.File
import java.util.concurrent.Callable import java.util.concurrent.Callable
@@ -70,3 +67,5 @@ fun Project.getBooleanProperty(name: String): Boolean? = this.findProperty(name)
inline fun CopySourceSpec.from(crossinline filesProvider: () -> Any?): CopySourceSpec = from(Callable { filesProvider() }) inline fun CopySourceSpec.from(crossinline filesProvider: () -> Any?): CopySourceSpec = from(Callable { filesProvider() })
fun Project.javaPluginConvention(): JavaPluginConvention = the() fun Project.javaPluginConvention(): JavaPluginConvention = the()
fun Project.findJavaPluginConvention(): JavaPluginConvention? = convention.findByType() ?: convention.findPlugin()
+6 -1
View File
@@ -98,7 +98,12 @@ fun Project.sourcesJar(body: Jar.() -> Unit = {}): TaskProvider<Jar> {
.resolvedArtifacts .resolvedArtifacts
.map { it.id.componentIdentifier } .map { it.id.componentIdentifier }
.filterIsInstance<ProjectComponentIdentifier>() .filterIsInstance<ProjectComponentIdentifier>()
.map { project(it.projectPath).mainSourceSet.allSource } .mapNotNull {
project(it.projectPath)
.findJavaPluginConvention()
?.mainSourceSet
?.allSource
}
}) })
} }
+8 -1
View File
@@ -1,4 +1,5 @@
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.api.plugins.JavaPluginConvention
import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSet
import org.gradle.api.tasks.SourceSetContainer import org.gradle.api.tasks.SourceSetContainer
@@ -37,7 +38,13 @@ val Project.sourceSets: SourceSetContainer
get() = javaPluginConvention().sourceSets get() = javaPluginConvention().sourceSets
val Project.mainSourceSet: SourceSet val Project.mainSourceSet: SourceSet
get() = sourceSets.getByName("main") get() = javaPluginConvention().mainSourceSet
val Project.testSourceSet: SourceSet val Project.testSourceSet: SourceSet
get() = javaPluginConvention().testSourceSet
val JavaPluginConvention.mainSourceSet: SourceSet
get() = sourceSets.getByName("main")
val JavaPluginConvention.testSourceSet: SourceSet
get() = sourceSets.getByName("test") get() = sourceSets.getByName("test")
@@ -6,6 +6,8 @@ configure<PublishingExtension> {
val artifactName = if (project.name == "idea-plugin") "kotlin-plugin" else project.name val artifactName = if (project.name == "idea-plugin") "kotlin-plugin" else project.name
artifactId = "$artifactName-${IdeVersionConfigurator.currentIde.name.toLowerCase()}" artifactId = "$artifactName-${IdeVersionConfigurator.currentIde.name.toLowerCase()}"
from(components["java"]) from(components["java"])
artifact(tasks["sourcesJar"])
artifact(tasks["javadocJar"])
pom { pom {
name.set("${project.group}:$artifactId") name.set("${project.group}:$artifactId")
+4
View File
@@ -18,4 +18,8 @@ sourceSets {
"test" {} "test" {}
} }
sourcesJar()
javadocJar()
apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts")
@@ -20,4 +20,8 @@ sourceSets {
runtimeJar() runtimeJar()
sourcesJar()
javadocJar()
apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts")
@@ -35,6 +35,10 @@ sourceSets {
runtimeJar() runtimeJar()
sourcesJar()
javadocJar()
testsJar() testsJar()
projectTest(parallel = true) { projectTest(parallel = true) {
@@ -58,6 +58,10 @@ sourceSets {
runtimeJar() runtimeJar()
sourcesJar()
javadocJar()
projectTest(parallel = true) projectTest(parallel = true)
apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts")
@@ -47,6 +47,10 @@ sourceSets {
runtimeJar() runtimeJar()
sourcesJar()
javadocJar()
testsJar() testsJar()
projectTest { projectTest {
@@ -88,4 +88,8 @@ projectTest(parallel = true) {
runtimeJar() runtimeJar()
sourcesJar()
javadocJar()
apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts")
@@ -27,4 +27,8 @@ sourceSets {
runtimeJar() runtimeJar()
sourcesJar()
javadocJar()
apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts")
+4
View File
@@ -37,6 +37,10 @@ sourceSets {
runtimeJar() runtimeJar()
sourcesJar()
javadocJar()
testsJar() testsJar()
projectTest(parallel = true) { projectTest(parallel = true) {
+4
View File
@@ -59,6 +59,10 @@ sourceSets {
runtimeJar() runtimeJar()
sourcesJar()
javadocJar()
projectTest(parallel = true) projectTest(parallel = true)
apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts")
@@ -33,4 +33,8 @@ sourceSets {
runtimeJar() runtimeJar()
sourcesJar()
javadocJar()
apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts")
+4
View File
@@ -165,6 +165,10 @@ val jar = runtimeJar {
archiveFileName.set("kotlin-plugin.jar") archiveFileName.set("kotlin-plugin.jar")
}.get() // make it eager to avoid corresponding refactorings in the kotlin-ultimate part for now }.get() // make it eager to avoid corresponding refactorings in the kotlin-ultimate part for now
sourcesJar()
javadocJar()
val ideaPluginDir: File by rootProject.extra val ideaPluginDir: File by rootProject.extra
tasks.register<Sync>("ideaPlugin") { tasks.register<Sync>("ideaPlugin") {
dependsOn(":dist") dependsOn(":dist")