plugins { kotlin("jvm") version "2.0.0-RC2" id("maven-publish") id("signing") } group = "nl.astraeus" version = "1.0.0-SNAPSHOT" repositories { mavenCentral() } dependencies { testImplementation(kotlin("test")) } tasks.test { useJUnitPlatform() } 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) }