diff --git a/.github/workflows/publish-sonatype.yml b/.github/workflows/publish-sonatype.yml index 7dd499bd..fbc52d24 100644 --- a/.github/workflows/publish-sonatype.yml +++ b/.github/workflows/publish-sonatype.yml @@ -30,7 +30,7 @@ jobs: - name: Publish to Sonatype run: | - ./gradlew --parallel --no-daemon publish + ./gradlew publishAndReleaseToMavenCentral --stacktrace -PmavenCentralUsername="$SONATYPE_USERNAME" -PmavenCentralPassword="$SONATYPE_PASSWORD" env: SONATYPE_USERNAME: ${{ secrets.OPENLAYER_SONATYPE_USERNAME || secrets.SONATYPE_USERNAME }} SONATYPE_PASSWORD: ${{ secrets.OPENLAYER_SONATYPE_PASSWORD || secrets.SONATYPE_PASSWORD }} diff --git a/build.gradle.kts b/build.gradle.kts index 1aa0b26e..4cac40fa 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("io.github.gradle-nexus.publish-plugin") version "1.1.0" + } allprojects { @@ -7,14 +7,4 @@ allprojects { version = "0.1.0-alpha.1" // x-release-please-version } -nexusPublishing { - repositories { - sonatype { - nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/")) - snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/")) - username.set(System.getenv("SONATYPE_USERNAME")) - password.set(System.getenv("SONATYPE_PASSWORD")) - } - } -} diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index b88cd06f..493cb327 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,12 +1,16 @@ plugins { `kotlin-dsl` + kotlin("jvm") version "1.9.22" + id("com.vanniktech.maven.publish") version "0.28.0" } repositories { gradlePluginPortal() + mavenCentral() } dependencies { implementation("com.diffplug.spotless:spotless-plugin-gradle:6.25.0") implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.23") + implementation("com.vanniktech:gradle-maven-publish-plugin:0.28.0") } diff --git a/buildSrc/src/main/kotlin/openlayer.java.gradle.kts b/buildSrc/src/main/kotlin/openlayer.java.gradle.kts index bc01a1d0..53e63304 100644 --- a/buildSrc/src/main/kotlin/openlayer.java.gradle.kts +++ b/buildSrc/src/main/kotlin/openlayer.java.gradle.kts @@ -1,6 +1,9 @@ import com.diffplug.gradle.spotless.SpotlessExtension import org.gradle.api.tasks.testing.logging.TestExceptionFormat -import java.util.Locale +import com.vanniktech.maven.publish.JavaLibrary +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.MavenPublishBaseExtension +import com.vanniktech.maven.publish.SonatypeHost plugins { `java-library` @@ -11,11 +14,6 @@ repositories { mavenCentral() } -configure { - withJavadocJar() - withSourcesJar() -} - configure { java { importOrder() @@ -35,10 +33,6 @@ tasks.withType().configureEach { options.release.set(8) } -tasks.named("javadocJar") { - setZip64(true) -} - tasks.named("jar") { manifest { attributes(mapOf( diff --git a/buildSrc/src/main/kotlin/openlayer.kotlin.gradle.kts b/buildSrc/src/main/kotlin/openlayer.kotlin.gradle.kts index d5a6d5d4..5c12826c 100644 --- a/buildSrc/src/main/kotlin/openlayer.kotlin.gradle.kts +++ b/buildSrc/src/main/kotlin/openlayer.kotlin.gradle.kts @@ -1,5 +1,6 @@ import com.diffplug.gradle.spotless.SpotlessExtension import org.jetbrains.kotlin.gradle.tasks.KotlinCompile +import com.vanniktech.maven.publish.* plugins { id("openlayer.java") diff --git a/buildSrc/src/main/kotlin/openlayer.publish.gradle.kts b/buildSrc/src/main/kotlin/openlayer.publish.gradle.kts index 1179c4d0..d159a4fa 100644 --- a/buildSrc/src/main/kotlin/openlayer.publish.gradle.kts +++ b/buildSrc/src/main/kotlin/openlayer.publish.gradle.kts @@ -3,65 +3,52 @@ import org.gradle.api.publish.maven.MavenPublication import org.gradle.kotlin.dsl.configure import org.gradle.kotlin.dsl.register import org.gradle.kotlin.dsl.get +import com.vanniktech.maven.publish.JavaLibrary +import com.vanniktech.maven.publish.JavadocJar +import com.vanniktech.maven.publish.MavenPublishBaseExtension +import com.vanniktech.maven.publish.SonatypeHost plugins { - `maven-publish` - `signing` + id("com.vanniktech.maven.publish") } -configure { - publications { - register("maven") { - from(components["java"]) +repositories { + gradlePluginPortal() + mavenCentral() +} - pom { - name.set("Openlayer API") - description.set("API for interacting with the Openlayer server.") - url.set("https://openlayer.com/docs/api-reference/rest/overview") +extra["signingInMemoryKey"] = System.getenv("GPG_SIGNING_KEY") +extra["signingInMemoryKeyId"] = System.getenv("GPG_SIGNING_KEY_ID") +extra["signingInMemoryKeyPassword"] = System.getenv("GPG_SIGNING_PASSWORD") - licenses { - license { - name.set("Apache-2.0") - } - } +configure { + signAllPublications() + publishToMavenCentral(SonatypeHost.CENTRAL_PORTAL) - developers { - developer { - name.set("Openlayer") - email.set("support@openlayer.com") - } - } + this.coordinates(project.group.toString(), project.name, project.version.toString()) - scm { - connection.set("scm:git:git://github.com/openlayer-ai/openlayer-java.git") - developerConnection.set("scm:git:git://github.com/openlayer-ai/openlayer-java.git") - url.set("https://github.com/openlayer-ai/openlayer-java") - } + pom { + name.set("Openlayer API") + description.set("API for interacting with the Openlayer server.") + url.set("https://openlayer.com/docs/api-reference/rest/overview") - versionMapping { - allVariants { - fromResolutionResult() - } - } + licenses { + license { + name.set("Apache-2.0") } } - } -} -signing { - val signingKeyId = System.getenv("GPG_SIGNING_KEY_ID")?.ifBlank { null } - val signingKey = System.getenv("GPG_SIGNING_KEY")?.ifBlank { null } - val signingPassword = System.getenv("GPG_SIGNING_PASSWORD")?.ifBlank { null } - if (signingKey != null && signingPassword != null) { - useInMemoryPgpKeys( - signingKeyId, - signingKey, - signingPassword, - ) - sign(publishing.publications["maven"]) - } -} + developers { + developer { + name.set("Openlayer") + email.set("support@openlayer.com") + } + } -tasks.named("publish") { - dependsOn(":closeAndReleaseSonatypeStagingRepository") + scm { + connection.set("scm:git:git://github.com/openlayer-ai/openlayer-java.git") + developerConnection.set("scm:git:git://github.com/openlayer-ai/openlayer-java.git") + url.set("https://github.com/openlayer-ai/openlayer-java") + } + } }