From a4be2820743e384a20e2a12ed0df9763eb7c77e7 Mon Sep 17 00:00:00 2001 From: Sergey Igushkin Date: Tue, 13 Jun 2017 15:49:45 +0300 Subject: [PATCH] Add Gradle Plugin Portal publication to the buildscripts Add option to disable signing (-PnoSign), to be used when publishing pre-built artifacts Add option to define specific version for publishing, to be used when publishing test versions (cherry picked from commit dcd55e9) --- libraries/commonConfiguration.gradle | 16 ++++---- libraries/tools/gradle-tools/build.gradle | 38 +++++++++++++++++++ libraries/tools/kotlin-allopen/build.gradle | 13 +++++++ .../tools/kotlin-gradle-plugin/build.gradle | 21 ++++++++++ libraries/tools/kotlin-noarg/build.gradle | 13 +++++++ 5 files changed, 94 insertions(+), 7 deletions(-) diff --git a/libraries/commonConfiguration.gradle b/libraries/commonConfiguration.gradle index 6e2c3d30ca8..5586b3f1079 100644 --- a/libraries/commonConfiguration.gradle +++ b/libraries/commonConfiguration.gradle @@ -83,16 +83,18 @@ task preparePublication { ext.configurePublishing = { Project project -> project.configure(project) { apply plugin: 'maven' - apply plugin: 'signing' + if (!project.hasProperty('prebuiltJar')) { + apply plugin: 'signing' - signing { - required { (project.properties["signingRequired"] ?: project.isSonatypeRelease) } - sign configurations.archives - } + signing { + required { (project.properties["signingRequired"] ?: project.isSonatypeRelease) } + sign configurations.archives + } - signArchives { - enabled signing.required + signArchives { + enabled signing.required + } } task dist(type: Copy, dependsOn: assemble) { diff --git a/libraries/tools/gradle-tools/build.gradle b/libraries/tools/gradle-tools/build.gradle index 8bc36c0410c..ca8e2205fb2 100644 --- a/libraries/tools/gradle-tools/build.gradle +++ b/libraries/tools/gradle-tools/build.gradle @@ -4,9 +4,11 @@ buildscript { repositories { mavenCentral() + maven { url 'https://plugins.gradle.org/m2/' } } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${kotlin_gradle_plugin_version}" + classpath "com.gradle.publish:plugin-publish-plugin:0.9.7" } } @@ -45,4 +47,40 @@ task clean { doLast { delete "${buildDir}/repo" } +} + +configure([project(':kotlin-gradle-plugin'), project(':kotlin-allopen'), project(':kotlin-noarg')]) { project -> + apply plugin: 'com.gradle.plugin-publish' + + if (project.hasProperty('publishPluginsVersion')) { + configurations.archives.artifacts.all { + version = project.getProperty('publishPluginsVersion') + } + } + + if (project.hasProperty("${project.name}-jar")) { + println("Using pre-built artifact for ${project.name}") + configurations.archives.artifacts.clear() + + artifacts { + archives(file(project.getProperty("${project.name}-jar"))) { + name project.name + } + } + } + + publishPlugins.doFirst { + assert !kotlin_version.contains('SNAPSHOT') + } + + pluginBundle { + website = 'https://kotlinlang.org/' + vcsUrl = 'https://github.com/JetBrains/kotlin/' + description = 'Kotlin plugins for Gradle' + tags = ['kotlin'] + + mavenCoordinates { + groupId = "org.jetbrains.kotlin" + } + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-allopen/build.gradle b/libraries/tools/kotlin-allopen/build.gradle index 127601d4819..2968705b29c 100644 --- a/libraries/tools/kotlin-allopen/build.gradle +++ b/libraries/tools/kotlin-allopen/build.gradle @@ -33,4 +33,17 @@ compileKotlin.dependsOn preprocessSources jar { from(targetSrc) { include("META-INF/**") } +} + +pluginBundle { + plugins { + kotlinAllopenPlugin { + id = 'org.jetbrains.kotlin.plugin.allopen' + description = displayName = 'Kotlin All Open compiler plugin' + } + kotlinSpringPlugin { + id = 'org.jetbrains.kotlin.plugin.spring' + description = displayName = 'Kotlin Spring compiler plugin' + } + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-gradle-plugin/build.gradle b/libraries/tools/kotlin-gradle-plugin/build.gradle index 565590c8430..400ca62519f 100644 --- a/libraries/tools/kotlin-gradle-plugin/build.gradle +++ b/libraries/tools/kotlin-gradle-plugin/build.gradle @@ -89,4 +89,25 @@ test.executable = "${JDK_18}/bin/java" dokka { outputFormat = 'markdown' includes = ["${projectDir}/Module.md"] +} + +pluginBundle { + plugins { + kotlinJvmPlugin { + id = 'org.jetbrains.kotlin.jvm' + description = displayName = 'Kotlin JVM plugin' + } + kotlinAndroidPlugin { + id = 'org.jetbrains.kotlin.android' + description = displayName = 'Kotlin Android plugin' + } + kotlinAndroidExtensionsPlugin { + id = 'org.jetbrains.kotlin.android.extensions' + description = displayName = 'Kotlin Android Extensions plugin' + } + kotlinKaptPlugin { + id = 'org.jetbrains.kotlin.kapt' + description = displayName = 'Kotlin Kapt plugin' + } + } } \ No newline at end of file diff --git a/libraries/tools/kotlin-noarg/build.gradle b/libraries/tools/kotlin-noarg/build.gradle index ab02992ffcf..fd23acb48d3 100644 --- a/libraries/tools/kotlin-noarg/build.gradle +++ b/libraries/tools/kotlin-noarg/build.gradle @@ -39,4 +39,17 @@ compileKotlin.dependsOn preprocessSources jar { from(targetSrc) { include("META-INF/**") } +} + +pluginBundle { + plugins { + kotlinNoargPlugin { + id = 'org.jetbrains.kotlin.plugin.noarg' + description = displayName = 'Kotlin No Arg compiler plugin' + } + kotlinJpaPlugin { + id = 'org.jetbrains.kotlin.plugin.jpa' + description = displayName = 'Kotlin JPA compiler plugin' + } + } } \ No newline at end of file