From 6bf481111079a9af8340dc2877e82d19ebf7c333 Mon Sep 17 00:00:00 2001 From: rnentjes Date: Sun, 5 May 2024 11:00:44 +0200 Subject: [PATCH] Maven publish --- .idea/misc.xml | 2 +- build.gradle.kts | 102 +++++++++++++++++- .../persistence/TestPersistenceJava.java | 1 - 3 files changed, 101 insertions(+), 4 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 4cc6529..931ca8c 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + diff --git a/build.gradle.kts b/build.gradle.kts index 31e69b1..696dbe6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,7 @@ plugins { kotlin("jvm") version "1.9.23" + id("maven-publish") + id("signing") } group = "nl.astraeus" @@ -17,6 +19,102 @@ tasks.test { useJUnitPlatform() } -kotlin { - jvmToolchain(17) +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") +} + +val sourcesJar by tasks.registering(Jar::class) { + archiveClassifier.set("sources") // This sets the classifier to 'sources' + from(sourceSets.main.get().allSource) // Assumes you are using the 'main' source set +} + +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 + } + } + } + publications { + create("mavenKotlin") { + artifact(javadocJar.get()) + artifact(tasks.jar.get()) + artifact(sourcesJar.get()) + } + } + publications.withType { + // Provide artifacts information requited by Maven Central + pom { + name.set("simple-persistence-kotlin") + description.set("Simple persistence in Kotlin") + //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://gitea.astraeus.nl/rnentjes/simple-persistence-kotlin") + } + } + } +} + +signing { + sign(publishing.publications) } diff --git a/src/test/java/nl/astraeus/persistence/TestPersistenceJava.java b/src/test/java/nl/astraeus/persistence/TestPersistenceJava.java index 533816f..c8eefc6 100644 --- a/src/test/java/nl/astraeus/persistence/TestPersistenceJava.java +++ b/src/test/java/nl/astraeus/persistence/TestPersistenceJava.java @@ -100,7 +100,6 @@ public class TestPersistenceJava { return null; }); - persistent.transaction((t) -> { List persons = t.findByIndex( Person.class,