diff --git a/buildSrc/src/main/kotlin/CommonUtil.kt b/buildSrc/src/main/kotlin/CommonUtil.kt index 2c727c5afff..6f7bb16e525 100644 --- a/buildSrc/src/main/kotlin/CommonUtil.kt +++ b/buildSrc/src/main/kotlin/CommonUtil.kt @@ -10,10 +10,7 @@ import org.gradle.api.plugins.JavaPluginConvention import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSetContainer import org.gradle.api.tasks.SourceSetOutput -import org.gradle.kotlin.dsl.creating -import org.gradle.kotlin.dsl.extra -import org.gradle.kotlin.dsl.registering -import org.gradle.kotlin.dsl.the +import org.gradle.kotlin.dsl.* import java.io.File 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() }) fun Project.javaPluginConvention(): JavaPluginConvention = the() + +fun Project.findJavaPluginConvention(): JavaPluginConvention? = convention.findByType() ?: convention.findPlugin() diff --git a/buildSrc/src/main/kotlin/artifacts.kt b/buildSrc/src/main/kotlin/artifacts.kt index ca87de4a91f..0d07dfecc5e 100644 --- a/buildSrc/src/main/kotlin/artifacts.kt +++ b/buildSrc/src/main/kotlin/artifacts.kt @@ -98,7 +98,12 @@ fun Project.sourcesJar(body: Jar.() -> Unit = {}): TaskProvider { .resolvedArtifacts .map { it.id.componentIdentifier } .filterIsInstance() - .map { project(it.projectPath).mainSourceSet.allSource } + .mapNotNull { + project(it.projectPath) + .findJavaPluginConvention() + ?.mainSourceSet + ?.allSource + } }) } diff --git a/buildSrc/src/main/kotlin/sourceSets.kt b/buildSrc/src/main/kotlin/sourceSets.kt index 996974afe87..95f58858491 100644 --- a/buildSrc/src/main/kotlin/sourceSets.kt +++ b/buildSrc/src/main/kotlin/sourceSets.kt @@ -1,4 +1,5 @@ import org.gradle.api.Project +import org.gradle.api.plugins.JavaPluginConvention import org.gradle.api.tasks.SourceSet import org.gradle.api.tasks.SourceSetContainer @@ -37,7 +38,13 @@ val Project.sourceSets: SourceSetContainer get() = javaPluginConvention().sourceSets val Project.mainSourceSet: SourceSet - get() = sourceSets.getByName("main") + get() = javaPluginConvention().mainSourceSet val Project.testSourceSet: SourceSet + get() = javaPluginConvention().testSourceSet + +val JavaPluginConvention.mainSourceSet: SourceSet + get() = sourceSets.getByName("main") + +val JavaPluginConvention.testSourceSet: SourceSet get() = sourceSets.getByName("test") diff --git a/gradle/kotlinPluginPublication.gradle.kts b/gradle/kotlinPluginPublication.gradle.kts index 96c2654fc7c..94b2179e3f2 100644 --- a/gradle/kotlinPluginPublication.gradle.kts +++ b/gradle/kotlinPluginPublication.gradle.kts @@ -6,6 +6,8 @@ configure { val artifactName = if (project.name == "idea-plugin") "kotlin-plugin" else project.name artifactId = "$artifactName-${IdeVersionConfigurator.currentIde.name.toLowerCase()}" from(components["java"]) + artifact(tasks["sourcesJar"]) + artifact(tasks["javadocJar"]) pom { name.set("${project.group}:$artifactId") diff --git a/idea/ide-common/build.gradle.kts b/idea/ide-common/build.gradle.kts index f064f611553..0e39788721e 100644 --- a/idea/ide-common/build.gradle.kts +++ b/idea/ide-common/build.gradle.kts @@ -18,4 +18,8 @@ sourceSets { "test" {} } +sourcesJar() + +javadocJar() + apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") diff --git a/idea/kotlin-gradle-tooling/build.gradle.kts b/idea/kotlin-gradle-tooling/build.gradle.kts index e3fc0745fe1..ee96d2787d9 100644 --- a/idea/kotlin-gradle-tooling/build.gradle.kts +++ b/idea/kotlin-gradle-tooling/build.gradle.kts @@ -20,4 +20,8 @@ sourceSets { runtimeJar() +sourcesJar() + +javadocJar() + apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") diff --git a/plugins/allopen/allopen-cli/build.gradle.kts b/plugins/allopen/allopen-cli/build.gradle.kts index 11084d393e8..2a276d1e479 100644 --- a/plugins/allopen/allopen-cli/build.gradle.kts +++ b/plugins/allopen/allopen-cli/build.gradle.kts @@ -35,6 +35,10 @@ sourceSets { runtimeJar() +sourcesJar() + +javadocJar() + testsJar() projectTest(parallel = true) { diff --git a/plugins/allopen/allopen-ide/build.gradle.kts b/plugins/allopen/allopen-ide/build.gradle.kts index c624e6d761b..5187b068b62 100644 --- a/plugins/allopen/allopen-ide/build.gradle.kts +++ b/plugins/allopen/allopen-ide/build.gradle.kts @@ -58,6 +58,10 @@ sourceSets { runtimeJar() +sourcesJar() + +javadocJar() + projectTest(parallel = true) apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") diff --git a/plugins/android-extensions/android-extensions-compiler/build.gradle.kts b/plugins/android-extensions/android-extensions-compiler/build.gradle.kts index bc8a2cb79e8..d40e989baa4 100644 --- a/plugins/android-extensions/android-extensions-compiler/build.gradle.kts +++ b/plugins/android-extensions/android-extensions-compiler/build.gradle.kts @@ -47,6 +47,10 @@ sourceSets { runtimeJar() +sourcesJar() + +javadocJar() + testsJar() projectTest { diff --git a/plugins/android-extensions/android-extensions-idea/build.gradle.kts b/plugins/android-extensions/android-extensions-idea/build.gradle.kts index 6eeaac437f3..9a4aa418cd6 100644 --- a/plugins/android-extensions/android-extensions-idea/build.gradle.kts +++ b/plugins/android-extensions/android-extensions-idea/build.gradle.kts @@ -88,4 +88,8 @@ projectTest(parallel = true) { runtimeJar() +sourcesJar() + +javadocJar() + apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") diff --git a/plugins/kapt3/kapt3-idea/build.gradle.kts b/plugins/kapt3/kapt3-idea/build.gradle.kts index 6a884fd513f..1c85f9997d8 100644 --- a/plugins/kapt3/kapt3-idea/build.gradle.kts +++ b/plugins/kapt3/kapt3-idea/build.gradle.kts @@ -27,4 +27,8 @@ sourceSets { runtimeJar() +sourcesJar() + +javadocJar() + apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") diff --git a/plugins/noarg/noarg-cli/build.gradle.kts b/plugins/noarg/noarg-cli/build.gradle.kts index 447e0d8a35d..5a700dd8a4f 100644 --- a/plugins/noarg/noarg-cli/build.gradle.kts +++ b/plugins/noarg/noarg-cli/build.gradle.kts @@ -37,6 +37,10 @@ sourceSets { runtimeJar() +sourcesJar() + +javadocJar() + testsJar() projectTest(parallel = true) { diff --git a/plugins/noarg/noarg-ide/build.gradle.kts b/plugins/noarg/noarg-ide/build.gradle.kts index c99782f1261..43e3dfabe18 100644 --- a/plugins/noarg/noarg-ide/build.gradle.kts +++ b/plugins/noarg/noarg-ide/build.gradle.kts @@ -59,6 +59,10 @@ sourceSets { runtimeJar() +sourcesJar() + +javadocJar() + projectTest(parallel = true) apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") diff --git a/plugins/sam-with-receiver/sam-with-receiver-ide/build.gradle.kts b/plugins/sam-with-receiver/sam-with-receiver-ide/build.gradle.kts index edcb2f62bc4..739de553083 100644 --- a/plugins/sam-with-receiver/sam-with-receiver-ide/build.gradle.kts +++ b/plugins/sam-with-receiver/sam-with-receiver-ide/build.gradle.kts @@ -33,4 +33,8 @@ sourceSets { runtimeJar() +sourcesJar() + +javadocJar() + apply(from = "$rootDir/gradle/kotlinPluginPublication.gradle.kts") diff --git a/prepare/idea-plugin/build.gradle.kts b/prepare/idea-plugin/build.gradle.kts index 0dca40da659..bae961ca6cb 100644 --- a/prepare/idea-plugin/build.gradle.kts +++ b/prepare/idea-plugin/build.gradle.kts @@ -165,6 +165,10 @@ val jar = runtimeJar { archiveFileName.set("kotlin-plugin.jar") }.get() // make it eager to avoid corresponding refactorings in the kotlin-ultimate part for now +sourcesJar() + +javadocJar() + val ideaPluginDir: File by rootProject.extra tasks.register("ideaPlugin") { dependsOn(":dist")