From df63f0bb12bb5e6f90e598c0c57ffa6a5195b589 Mon Sep 17 00:00:00 2001 From: You Qi Date: Sun, 30 Apr 2023 19:02:58 +0800 Subject: [PATCH] Setup publication to MavenCentral --- .github/workflows/publish-plugin.yaml | 3 ++ README.md | 4 ++ plugin-build/gradle.properties | 6 +++ plugin-build/unmeta/build.gradle.kts | 63 ++++++++++++++++++++++++--- 4 files changed, 70 insertions(+), 6 deletions(-) diff --git a/.github/workflows/publish-plugin.yaml b/.github/workflows/publish-plugin.yaml index f0dc03c..c3c57a0 100644 --- a/.github/workflows/publish-plugin.yaml +++ b/.github/workflows/publish-plugin.yaml @@ -29,3 +29,6 @@ jobs: - name: Publish on Plugin Portal run: ./gradlew --project-dir plugin-build setupPluginUploadFromEnvironment publishPlugins if: success() + - name: Publish on Maven Central + run: ./gradlew --project-dir plugin-build publishMavenJavaPublicationToMavenRepository + if: success() diff --git a/README.md b/README.md index 0ceb265..e0a6c76 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,9 @@

[![build](https://img.shields.io/github/actions/workflow/status/axzae/unmeta-gradle-plugin/pre-merge.yaml?branch=main)][actions] +[![github tag](https://img.shields.io/github/v/tag/axzae/unmeta-gradle-plugin?label=github)][releases] [![plugin portal](https://img.shields.io/gradle-plugin-portal/v/com.axzae.unmeta)][pluginportal] +[![maven central](https://img.shields.io/maven-central/v/com.axzae/unmeta)][mavencentral]

@@ -112,4 +114,6 @@ Feel free to open an issue or submit a pull request for any bugs/improvements. [1]: https://github.com/Kotlin/kotlinx.coroutines/issues/2267#issuecomment-698826645 [debugmetadata]: https://github.com/JetBrains/kotlin/blob/master/libraries/stdlib/jvm/src/kotlin/coroutines/jvm/internal/DebugMetadata.kt [pluginportal]: https://plugins.gradle.org/plugin/com.axzae.unmeta +[mavencentral]: https://central.sonatype.com/artifact/com.axzae/unmeta [actions]: https://github.com/axzae/unmeta-gradle-plugin/actions +[releases]: https://github.com/axzae/unmeta-gradle-plugin/releases diff --git a/plugin-build/gradle.properties b/plugin-build/gradle.properties index 24cd120..2d50a6b 100644 --- a/plugin-build/gradle.properties +++ b/plugin-build/gradle.properties @@ -6,3 +6,9 @@ DESCRIPTION=Remove @DebugMetadata annotation from your Kotlin classes WEBSITE=https://github.com/axzae/unmeta-gradle-plugin VCS_URL=https://github.com/axzae/unmeta-gradle-plugin IMPLEMENTATION_CLASS=com.axzae.unmeta.UnmetaPlugin +# Maven Central POM +ORGANIZATION_NAME=Axzae +ORGANIZATION_URL=https://www.axzae.com +LICENSE_NAME=The MIT License +LICENSE_URL=https://opensource.org/license/mit/ +DEVELOPER_NAME=You Qi diff --git a/plugin-build/unmeta/build.gradle.kts b/plugin-build/unmeta/build.gradle.kts index aef0e41..17ebfa5 100644 --- a/plugin-build/unmeta/build.gradle.kts +++ b/plugin-build/unmeta/build.gradle.kts @@ -22,17 +22,68 @@ java { targetCompatibility = JavaVersion.VERSION_1_8 } +tasks.withType { + kotlinOptions { + jvmTarget = JavaVersion.VERSION_1_8.toString() + } +} + +publishing { + publications { + create("mavenJava") { + from(components["java"]) + pom { + name.set(property("DISPLAY_NAME").toString()) + description.set(property("DESCRIPTION").toString()) + url.set(property("WEBSITE").toString()) + + organization { + name.set(property("ORGANIZATION_NAME").toString()) + url.set(property("ORGANIZATION_URL").toString()) + } + + licenses { + license { + name.set(property("LICENSE_NAME").toString()) + url.set(property("LICENSE_URL").toString()) + } + } + + scm { + val (vcsHost, vcsUser, vcsRepo) = property("VCS_URL").toString() + .substringAfter("https://") + .split("/") + url.set(property("VCS_URL").toString()) + connection.set("scm:git:git://$vcsHost/$vcsUser/$vcsRepo.git") + developerConnection.set("scm:git:ssh://git@$vcsHost:$vcsUser/$vcsRepo.git") + } + + developers { + developer { + name.set(property("DEVELOPER_NAME").toString()) + } + } + } + } + } + + repositories { + maven { + url = uri("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/") + credentials { + username = System.getenv("SONATYPE_USERNAME") + password = System.getenv("SONATYPE_SECRET") + } + } + } +} + signing { val signingKey = System.getenv("GPG_SIGNING_KEY") val signingPassword = System.getenv("GPG_SIGNING_PASSWORD") useInMemoryPgpKeys(signingKey.chunked(64).joinToString("\n"), signingPassword) sign(tasks["jar"]) -} - -tasks.withType { - kotlinOptions { - jvmTarget = JavaVersion.VERSION_1_8.toString() - } + sign(publishing.publications["mavenJava"]) } gradlePlugin {