Setup publication to MavenCentral

This commit is contained in:
You Qi
2023-04-30 19:02:58 +08:00
parent 78016db8c6
commit df63f0bb12
4 changed files with 70 additions and 6 deletions

View File

@@ -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()

View File

@@ -3,7 +3,9 @@
<p>
[![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]
</p>
@@ -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

View File

@@ -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

View File

@@ -22,17 +22,68 @@ java {
targetCompatibility = JavaVersion.VERSION_1_8
}
tasks.withType<KotlinCompile> {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
}
publishing {
publications {
create<MavenPublication>("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<KotlinCompile> {
kotlinOptions {
jvmTarget = JavaVersion.VERSION_1_8.toString()
}
sign(publishing.publications["mavenJava"])
}
gradlePlugin {