From c61ced4a3b5f23abb4b4962d79fec7efbb5b87f6 Mon Sep 17 00:00:00 2001 From: Filipp Zhinkin Date: Tue, 17 Jun 2025 16:56:07 -0400 Subject: [PATCH 1/2] Support a new publication scheme --- build.gradle.kts | 4 ++-- buildSrc/src/main/kotlin/Publishing.kt | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 2296343a..a10e154e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,6 @@ +import kotlinx.validation.build.publishingRepository import kotlinx.kover.gradle.plugin.dsl.CoverageUnit import kotlinx.validation.build.mavenCentralMetadata -import kotlinx.validation.build.mavenRepositoryPublishing import kotlinx.validation.build.signPublicationIfKeyPresent import org.gradle.api.attributes.TestSuiteType.FUNCTIONAL_TEST import org.jetbrains.dokka.gradle.DokkaTask @@ -125,8 +125,8 @@ publishing { create("maven") { from(components["java"]) } + publishingRepository(project) - mavenRepositoryPublishing(project) mavenCentralMetadata() } diff --git a/buildSrc/src/main/kotlin/Publishing.kt b/buildSrc/src/main/kotlin/Publishing.kt index 315bf540..63a1b4ba 100644 --- a/buildSrc/src/main/kotlin/Publishing.kt +++ b/buildSrc/src/main/kotlin/Publishing.kt @@ -11,13 +11,15 @@ import org.gradle.api.publish.maven.* import org.gradle.plugins.signing.* import java.net.* -fun PublishingExtension.mavenRepositoryPublishing(project: Project) { +// Artifacts are published to an intermediate repo (libs.repo.url) first, +// and then deployed to the central portal. +fun PublishingExtension.publishingRepository(project: Project) { repositories { maven { - url = URI("https://oss.sonatype.org/service/local/staging/deploy/maven2/") + url = URI(project.getSensitiveProperty("libs.repo.url") ?: error("libs.repo.url is not set")) credentials { - username = project.getSensitiveProperty("libs.sonatype.user") - password = project.getSensitiveProperty("libs.sonatype.password") + username = project.getSensitiveProperty("libs.repo.user") + password = project.getSensitiveProperty("libs.repo.password") } } } From 8b7aa72e942df7c5a636179a0134256161875d26 Mon Sep 17 00:00:00 2001 From: Filipp Zhinkin Date: Mon, 7 Jul 2025 14:56:49 -0400 Subject: [PATCH 2/2] fixup! Support a new publication scheme --- build.gradle.kts | 4 ++-- buildSrc/src/main/kotlin/Publishing.kt | 17 ++++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index a10e154e..6e1d3cc1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,4 +1,4 @@ -import kotlinx.validation.build.publishingRepository +import kotlinx.validation.build.addPublishingRepositoryIfPresent import kotlinx.kover.gradle.plugin.dsl.CoverageUnit import kotlinx.validation.build.mavenCentralMetadata import kotlinx.validation.build.signPublicationIfKeyPresent @@ -125,7 +125,7 @@ publishing { create("maven") { from(components["java"]) } - publishingRepository(project) + addPublishingRepositoryIfPresent(project) mavenCentralMetadata() } diff --git a/buildSrc/src/main/kotlin/Publishing.kt b/buildSrc/src/main/kotlin/Publishing.kt index 63a1b4ba..655316fa 100644 --- a/buildSrc/src/main/kotlin/Publishing.kt +++ b/buildSrc/src/main/kotlin/Publishing.kt @@ -13,13 +13,16 @@ import java.net.* // Artifacts are published to an intermediate repo (libs.repo.url) first, // and then deployed to the central portal. -fun PublishingExtension.publishingRepository(project: Project) { - repositories { - maven { - url = URI(project.getSensitiveProperty("libs.repo.url") ?: error("libs.repo.url is not set")) - credentials { - username = project.getSensitiveProperty("libs.repo.user") - password = project.getSensitiveProperty("libs.repo.password") +fun PublishingExtension.addPublishingRepositoryIfPresent(project: Project) { + val repositoryUrl = project.getSensitiveProperty("libs.repo.url") + if (!repositoryUrl.isNullOrBlank()) { + repositories { + maven { + url = URI(repositoryUrl) + credentials { + username = project.getSensitiveProperty("libs.repo.user") + password = project.getSensitiveProperty("libs.repo.password") + } } } }