diff --git a/build.gradle.kts b/build.gradle.kts index 5fe43201..dd8a7bc3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,6 @@ buildscript { dependencies { classpath(kotlin("gradle-plugin", version = libs.versions.kotlin.get())) classpath(libs.gradle.plugin.rust) - classpath(libs.gradle.plugin.publish) classpath(libs.gradle.plugin.navigation) } } @@ -15,13 +14,9 @@ plugins { id("com.github.ben-manes.versions") id("com.osacky.fulladle") id("io.gitlab.arturbosch.detekt") - id("org.jetbrains.dokka") - id("org.owasp.dependencycheck") id("zcash-sdk.ktlint-conventions") } -apply(plugin = "com.vanniktech.maven.publish") - tasks { register("detektAll", io.gitlab.arturbosch.detekt.Detekt::class) { parallel = true diff --git a/gradle.properties b/gradle.properties index 2c076971..119ad79b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -17,23 +17,12 @@ mavenCentralPassword= # Configures whether release is an unstable snapshot. IS_SNAPSHOT=true +RELEASE_SIGNING_ENABLED=false + +# Required by the maven publishing plugin +SONATYPE_HOST=DEFAULT LIBRARY_VERSION=1.6.0-beta01 -POM_NAME=Zcash Android Wallet SDK -GROUP=cash.z.ecc.android -POM_ARTIFACT_ID=zcash-android-sdk -POM_DESCRIPTION=This lightweight SDK connects Android to Zcash. It welds together Rust and Kotlin in a minimal way, allowing third-party Android apps to send and receive shielded transactions easily, securely and privately. -POM_INCEPTION_YEAR=2018 -POM_URL=https://github.com/zcash/zcash-android-wallet-sdk/ -POM_SCM_URL=https://github.com/zcash/zcash-android-wallet-sdk/ -POM_SCM_CONNECTION=scm:git:git://github.com/zcash/zcash-android-wallet-sdk.git -POM_SCM_DEV_CONNECTION=scm:git:ssh://git@github.com/zcash/zcash-android-wallet-sdk.git -POM_LICENCE_NAME=The MIT License -POM_LICENCE_URL=http://opensource.org/licenses/MIT -POM_LICENCE_DIST=repo -POM_DEVELOPER_ID=zcash -POM_DEVELOPER_NAME=Zcash -POM_DEVELOPER_URL=https://github.com/zcash/ # Kotlin compiler warnings can be considered errors, failing the build. # Currently set to false, because this project has a lot of warnings to fix first. @@ -78,8 +67,7 @@ FULLADLE_VERSION=0.17.4 GRADLE_VERSIONS_PLUGIN_VERSION=0.42.0 KTLINT_VERSION=0.45.2 KSP_VERSION=1.6.21-1.0.6 -MAVEN_PUBLISH_GRADLE_PLUGIN=0.18.0 -OWASP_DEPENDENCY_CHECK_VERSION=6.5.0.1 +MAVEN_PUBLISH_GRADLE_PLUGIN=0.20.0 PROTOBUF_GRADLE_PLUGIN_VERSION=0.8.18 RUST_GRADLE_PLUGIN_VERSION=0.9.3 diff --git a/sdk-lib/build.gradle.kts b/sdk-lib/build.gradle.kts index 29ce9138..42401375 100644 --- a/sdk-lib/build.gradle.kts +++ b/sdk-lib/build.gradle.kts @@ -14,23 +14,25 @@ plugins { id("org.jetbrains.dokka") id("com.google.protobuf") id("org.mozilla.rust-android-gradle.rust-android") - id("com.vanniktech.maven.publish") + id("com.vanniktech.maven.publish.base") } // Publishing information val isSnapshot = project.property("IS_SNAPSHOT").toString().toBoolean() val version = project.property("LIBRARY_VERSION").toString() -val ARTIFACT_ID = project.property("POM_ARTIFACT_ID").toString() project.group = "cash.z.ecc.android" project.version = if (isSnapshot) { "$version-SNAPSHOT" } else { version } + +val myArtifactId = "zcash-android-sdk" + publishing { publications { publications.withType().all { - artifactId = ARTIFACT_ID + artifactId = myArtifactId } } } @@ -73,7 +75,7 @@ android { kotlinOptions { // Tricky: fix: By default, the kotlin_module name will not include the version (in classes.jar/META-INF). Instead it has a colon, which breaks compilation on Windows. This is one way to set it explicitly to the proper value. See https://github.com/zcash/zcash-android-wallet-sdk/issues/222 for more info. - freeCompilerArgs += listOf("-module-name", "$ARTIFACT_ID-${project.version}_release") + freeCompilerArgs += listOf("-module-name", "$myArtifactId-${project.version}_release") } packagingOptions { @@ -97,16 +99,53 @@ android { baseline = File("lint-baseline.xml") } - publishing { - singleVariant("release") { - withSourcesJar() - withJavadocJar() - } - } + // Handled by com.vanniktech.maven.publish.AndroidSingleVariantLibrary below + // publishing { + // singleVariant("release") { + // withSourcesJar() + // withJavadocJar() + // } + // } } -mavenPublish { - androidVariantToPublish = "release" +mavenPublishing { + publishToMavenCentral(com.vanniktech.maven.publish.SonatypeHost.DEFAULT) + signAllPublications() + + pom { + name.set("Zcash Android Wallet SDK") + description.set("This lightweight SDK connects Android to Zcash, allowing third-party Android " + + "apps to send and receive shielded transactions easily, securely and privately.") + url.set("https://github.com/zcash/zcash-android-wallet-sdk/") + inceptionYear.set("2018") + scm { + url.set("https://github.com/zcash/zcash-android-wallet-sdk/") + connection.set("scm:git:git://github.com/zcash/zcash-android-wallet-sdk.git") + developerConnection.set("scm:git:ssh://git@github.com/zcash/zcash-android-wallet-sdk.git") + } + developers { + developer { + id.set("zcash") + name.set("Zcash") + url.set("https://github.com/zcash/") + } + } + licenses { + license { + name.set("The MIT License") + url.set("http://opensource.org/licenses/MIT") + distribution.set("repo") + } + } + } + + configure( + com.vanniktech.maven.publish.AndroidSingleVariantLibrary( + "release", + sourcesJar = true, + publishJavadocJar = true + ) + ) } allOpen { @@ -190,7 +229,6 @@ dependencies { implementation(libs.bundles.grpc) compileOnly(libs.javax.annotation) - // // Locked Versions // these should be checked regularly and removed when possible diff --git a/settings.gradle.kts b/settings.gradle.kts index 8294bd52..4e76f625 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -14,7 +14,7 @@ pluginManagement { val gradleVersionsPluginVersion = extra["GRADLE_VERSIONS_PLUGIN_VERSION"].toString() val kotlinVersion = extra["KOTLIN_VERSION"].toString() val kspVersion = extra["KSP_VERSION"].toString() - val owaspVersion = extra["OWASP_DEPENDENCY_CHECK_VERSION"].toString() + val mavenPublishPluginVersion = extra["MAVEN_PUBLISH_GRADLE_PLUGIN"].toString() val protobufVersion = extra["PROTOBUF_GRADLE_PLUGIN_VERSION"].toString() id("com.android.application") version (androidGradlePluginVersion) apply (false) @@ -23,11 +23,11 @@ pluginManagement { id("com.google.devtools.ksp") version(kspVersion) apply (false) id("com.google.protobuf") version (protobufVersion) apply (false) id("com.osacky.fulladle") version (fulladleVersion) apply (false) + id("com.vanniktech.maven.publish.base") version(mavenPublishPluginVersion) apply (false) id("io.gitlab.arturbosch.detekt") version (detektVersion) apply (false) id("org.jetbrains.dokka") version (dokkaVersion) apply (false) id("org.jetbrains.kotlin.android") version (kotlinVersion) apply (false) id("org.jetbrains.kotlin.plugin.allopen") version (kotlinVersion) apply (false) - id("org.owasp.dependencycheck") version (owaspVersion) apply (false) } }