diff --git a/build.gradle.kts b/build.gradle.kts index 5f688b3..84f316c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,16 +1,9 @@ -// For publishing, all of these are required in the top-level. -plugins { - id("io.github.gradle-nexus.publish-plugin") version "2.0.0" -} -nexusPublishing { - repositories { - sonatype() - } -} allprojects { group = "com.codeheadsystems" - //version = "3.0.2" - version = "3.0.3-SNAPSHOT" + version = "3.0.4" + //version = "3.0.3-SNAPSHOT" } -// gradle clean build test publishToSonatype closeAndReleaseSonatypeStagingRepository + +// gradle jreleaserConfig +// gradle clean build test public jreleaserDeploy diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 0187847..9f2c626 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -8,6 +8,10 @@ plugins { } repositories { - // Use the plugin portal to apply community plugins in convention plugins. + mavenCentral() gradlePluginPortal() } + +dependencies { + implementation(libs.gradleplugin.jreleaser) +} diff --git a/buildSrc/settings.gradle.kts b/buildSrc/settings.gradle.kts index 31bf56a..51ccb40 100644 --- a/buildSrc/settings.gradle.kts +++ b/buildSrc/settings.gradle.kts @@ -5,10 +5,13 @@ */ dependencyResolutionManagement { - // Reuse version catalog from the main build. versionCatalogs { - create("libs", { from(files("../gradle/libs.versions.toml")) }) + create("libs") { + from(files("../gradle/libs.versions.toml")) + } + } + repositories { + gradlePluginPortal() + mavenCentral() } } - -rootProject.name = "buildSrc" diff --git a/buildSrc/src/main/kotlin/buildlogic.java-publish-conventions.gradle.kts b/buildSrc/src/main/kotlin/buildlogic.java-publish-conventions.gradle.kts index 911ddb9..614de97 100644 --- a/buildSrc/src/main/kotlin/buildlogic.java-publish-conventions.gradle.kts +++ b/buildSrc/src/main/kotlin/buildlogic.java-publish-conventions.gradle.kts @@ -1,7 +1,8 @@ + +import org.jreleaser.model.Active plugins { - // Apply the java Plugin to add support for Java. `maven-publish` - signing + id("org.jreleaser") } publishing { @@ -36,15 +37,39 @@ publishing { } repositories { maven { - val releasesRepoUrl = "https://oss.sonatype.org/service/local/staging/deploy/maven2" - val snapshotsRepoUrl = "https://oss.sonatype.org/content/repositories/snapshots" - url = uri(if (version.toString().endsWith("SNAPSHOT")) snapshotsRepoUrl else releasesRepoUrl) - name = "ossrh" - credentials(PasswordCredentials::class) + setUrl(layout.buildDirectory.dir("staging-deploy")) } } } -signing { - useGpgCmd() - sign(publishing.publications["mavenJava"]) + +jreleaser { + gitRootSearch = true + strict = false + dryrun = false + signing { + active = Active.ALWAYS + armored = true + } + release { + github { + enabled = true + repoOwner = "wolpert" + repoUrl = "https://github.com/wolpert/library" + skipRelease = true + skipTag = true + sign = true + overwrite = true + } + } + deploy { + maven { + mavenCentral { + register("sonatype") { + active = Active.ALWAYS + url = "https://central.sonatype.com/api/v1/publisher" + stagingRepository("build/staging-deploy") + } + } + } + } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1c8f315..bd74dd6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,6 +13,7 @@ commons-codec = "1.18.0" commons-io = "2.19.0" dagger = "2.56.2" dropwizard4 = "4.0.13" +jreleaser = '1.18.0' jdbi = '3.49.4' jsr305 = "3.0.2" immutables = '2.10.1' @@ -72,6 +73,9 @@ mockito-junit-jupiter = { module = "org.mockito:mockito-junit-jupiter", version. slf4j-api = { module = "org.slf4j:slf4j-api", version.ref = "slf4j" } testcontainers = { module = "org.testcontainers:testcontainers", version.ref = "testcontainers" } testcontainers-postgres = { module = "org.testcontainers:postgresql", version.ref = "testcontainers" } +gradleplugin-jreleaser = { group = "org.jreleaser", name = "org.jreleaser.gradle.plugin", version.ref = "jreleaser" } +[plugins] +jreleaser = { id = "org.jreleaser", version.ref = "jreleaser" } [bundles] caffine = ["caffine", "caffine-jcache"]