From 6f37c879c268916957c11595217315740a102973 Mon Sep 17 00:00:00 2001 From: rnentjes Date: Sun, 6 Apr 2025 15:12:02 +0200 Subject: [PATCH] Migrate to com.vanniktech.maven.publish publish plugin, update gradle, publish to maven central. --- build.gradle.kts | 123 +++++++---------------- gradle/wrapper/gradle-wrapper.properties | 2 +- readme.md | 2 +- settings.gradle.kts | 15 +++ 4 files changed, 55 insertions(+), 87 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index c1eddf7..5e9837d 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,12 +1,13 @@ @file:OptIn(ExperimentalWasmDsl::class) +import com.vanniktech.maven.publish.SonatypeHost import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl plugins { kotlin("multiplatform") version "2.1.10" - `maven-publish` signing id("org.jetbrains.dokka") version "1.5.31" + id("com.vanniktech.maven.publish") version "0.31.0" } group = "nl.astraeus" @@ -14,6 +15,10 @@ version = "1.2.5" repositories { mavenCentral() + maven { + name = "Sonatype Releases" + url = uri("https://central.sonatype.com/api/v1/publisher/deployments/download/") + } } /* @@ -76,67 +81,14 @@ kotlin { } } -extra["PUBLISH_GROUP_ID"] = group -extra["PUBLISH_VERSION"] = version -extra["PUBLISH_ARTIFACT_ID"] = name - -// Stub secrets to let the project sync and build without the publication values set up -val signingKeyId: String? by project -val signingPassword: String? by project -val signingSecretKeyRingFile: String? by project -val ossrhUsername: String? by project -val ossrhPassword: String? by project - -extra["signing.keyId"] = signingKeyId -extra["signing.password"] = signingPassword -extra["signing.secretKeyRingFile"] = signingSecretKeyRingFile -extra["ossrhUsername"] = ossrhUsername -extra["ossrhPassword"] = ossrhPassword - -val javadocJar by tasks.registering(Jar::class) { - archiveClassifier.set("javadoc") -} - publishing { repositories { mavenLocal() - maven { - name = "releases" - // change to point to your repo, e.g. http://my.org/repo - setUrl("https://reposilite.astraeus.nl/releases") - credentials { - val reposiliteUsername: String? by project - val reposilitePassword: String? by project - - username = reposiliteUsername - password = reposilitePassword - } - } - maven { - name = "snapshots" - // change to point to your repo, e.g. http://my.org/repo - setUrl("https://reposilite.astraeus.nl/snapshots") - credentials { - val reposiliteUsername: String? by project - val reposilitePassword: String? by project - - username = reposiliteUsername - password = reposilitePassword - } - } - maven { - name = "sonatype" - setUrl("https://s01.oss.sonatype.org/service/local/staging/deploy/maven2") - credentials { - username = ossrhUsername - password = ossrhPassword - } - } maven { name = "gitea" setUrl("https://gitea.astraeus.nl/api/packages/rnentjes/maven") - credentials() { + credentials { val giteaUsername: String? by project val giteaPassword: String? by project @@ -145,36 +97,6 @@ publishing { } } } - - // Configure all publications - publications.withType { - // Stub javadoc.jar artifact - artifact(javadocJar.get()) - - // Provide artifacts information requited by Maven Central - pom { - name.set("kotlin-komponent") - description.set("Kotlin komponent") - url.set("https://github.com/rnentjes/komponent") - - licenses { - license { - name.set("MIT") - url.set("https://opensource.org/licenses/MIT") - } - } - developers { - developer { - id.set("rnentjes") - name.set("Rien Nentjes") - email.set("info@nentjes.com") - } - } - scm { - url.set("https://github.com/rnentjes/komponent") - } - } - } } tasks.withType { @@ -185,6 +107,37 @@ signing { sign(publishing.publications) } +mavenPublishing { + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) + + signAllPublications() + + coordinates(group.toString(), name.toString(), version.toString()) + + pom { + name = "kotlin-komponent" + description = "Kotlin komponent" + inceptionYear = "2017" + url = "https://github.com/rnentjes/komponent" + licenses { + license { + name = "MIT" + url = "https://opensource.org/licenses/MIT" + } + } + developers { + developer { + id = "rnentjes" + name = "Rien Nentjes" + email = "info@nentjes.com" + } + } + scm { + url = "https://github.com/rnentjes/komponent" + } + } +} + tasks.withType { dependsOn(tasks.withType()) } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a5d4f22..bb44666 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ #Wed Mar 04 13:29:12 CET 2020 -distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-all.zip distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStorePath=wrapper/dists diff --git a/readme.md b/readme.md index f1bccea..daca1a2 100644 --- a/readme.md +++ b/readme.md @@ -8,6 +8,6 @@ See the komp-todo repository for a basic example here: [komp-todo](https://githu For a more complete example take a look at the simple-password-manager repository: [simple-password-manager](https://github.com/rnentjes/simple-password-manager) -Available on maven central: "nl.astraeus:kotlin-komponent-js:1.2.1" +Available on maven central: "nl.astraeus:kotlin-komponent-js:1.2.5" Some getting started documentation can be found [here](docs/getting-started.md) diff --git a/settings.gradle.kts b/settings.gradle.kts index 933d378..cf32465 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,2 +1,17 @@ +pluginManagement { + repositories { + google() + mavenCentral() + gradlePluginPortal() + } +} + +dependencyResolutionManagement { + repositories { + google() + mavenCentral() + } +} + rootProject.name = "kotlin-komponent"