From 024c20ac1bbcc02137b6a3740950357b22162bea Mon Sep 17 00:00:00 2001 From: Osip Fatkullin Date: Thu, 9 May 2024 22:07:54 +0200 Subject: [PATCH] build: Migrate publication to gradle-maven-publish-plugin --- CHANGELOG.md | 4 ++- build.gradle.kts | 29 ------------------- buildSrc/build.gradle.kts | 1 + .../main/kotlin/convention.publish.gradle.kts | 29 +++++++++++++++---- gradle/libs.versions.toml | 2 ++ 5 files changed, 30 insertions(+), 35 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 18d9ddb..1abd5ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,8 @@ ## [Unreleased] -*No changes* +### Housekeeping + +- Publication migrated to [com.vanniktech:gradle-maven-publish-plugin](https://github.com/vanniktech/gradle-maven-publish-plugin) ## [1.1.1-beta02] - 2024.05.07 diff --git a/build.gradle.kts b/build.gradle.kts index 0ab09e2..cbb8b7e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,20 +1,5 @@ -import com.redmadrobot.build.dsl.developer -import com.redmadrobot.build.dsl.mit -import com.redmadrobot.build.dsl.setGitHubProject - plugins { - com.redmadrobot.`publish-config` com.redmadrobot.`android-config` - id("io.github.gradle-nexus.publish-plugin") version "2.0.0" -} - -nexusPublishing { - repositories { - sonatype { - nexusUrl = uri("https://s01.oss.sonatype.org/service/local/") - snapshotRepositoryUrl = uri("https://s01.oss.sonatype.org/content/repositories/snapshots/") - } - } } val datastoreVersion = libs.versions.datastore.get() @@ -26,18 +11,4 @@ allprojects { redmadrobot { // Min SDK should be aligned with min SDK in androidx.security:security-crypto android.minSdk = 23 - - publishing { - signArtifacts = true - - pom { - setGitHubProject("osipxd/encrypted-datastore") - licenses { - mit() - } - developers { - developer(id = "osipxd", name = "Osip Fatkullin", email = "osip.fatkullin@gmail.com") - } - } - } } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index 62a382c..dd4a81b 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -10,6 +10,7 @@ dependencies { implementation(libs.infrastructure.android) implementation(libs.infrastructure.kotlin) implementation(libs.infrastructure.publish) + implementation(libs.mavenPublishPlugin) implementation(libs.kotlinx.binaryCompatibilityValidator) } diff --git a/buildSrc/src/main/kotlin/convention.publish.gradle.kts b/buildSrc/src/main/kotlin/convention.publish.gradle.kts index 7d1eb6c..a4bde8f 100644 --- a/buildSrc/src/main/kotlin/convention.publish.gradle.kts +++ b/buildSrc/src/main/kotlin/convention.publish.gradle.kts @@ -1,15 +1,34 @@ -import com.redmadrobot.build.dsl.ossrh +import com.redmadrobot.build.dsl.developer +import com.redmadrobot.build.dsl.mit +import com.redmadrobot.build.dsl.setGitHubProject +import com.vanniktech.maven.publish.SonatypeHost import org.gradle.api.plugins.internal.JavaPluginHelper import org.gradle.internal.component.external.model.TestFixturesSupport import org.gradle.jvm.component.internal.DefaultJvmSoftwareComponent plugins { - id("com.redmadrobot.publish") + com.vanniktech.maven.publish + signing } -publishing { - repositories { - ossrh { credentials(PasswordCredentials::class) } +signing { + useGpgCmd() +} + +mavenPublishing { + publishToMavenCentral(SonatypeHost.S01) + signAllPublications() + + coordinates(artifactId = project.name) + + pom { + setGitHubProject("osipxd/encrypted-datastore") + licenses { + mit() + } + developers { + developer(id = "osipxd", name = "Osip Fatkullin", email = "osip.fatkullin@gmail.com") + } } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4205574..2b635ee 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,6 +3,7 @@ kotlin = "1.9.23" datastore = "1.1.1" infrastructure = "0.18.1" +mavenPublishPlugin = "0.28.0" junit = "5.10.2" # Sample @@ -32,6 +33,7 @@ tink = "com.google.crypto.tink:tink-android:1.13.0" infrastructure-android = { module = "com.redmadrobot.build:infrastructure-android", version.ref = "infrastructure" } infrastructure-kotlin = { module = "com.redmadrobot.build:infrastructure-kotlin", version.ref = "infrastructure" } infrastructure-publish = { module = "com.redmadrobot.build:infrastructure-publish", version.ref = "infrastructure" } +mavenPublishPlugin = { module = "com.vanniktech:gradle-maven-publish-plugin", version.ref = "mavenPublishPlugin" } junit-bom = { module = "org.junit:junit-bom", version.ref = "junit" } junit-jupiter = { module = "org.junit.jupiter:junit-jupiter", version.ref = "junit" }