-
-
Save zsmb13/56ed98c8fe916de441f2a9d8e060cd4a to your computer and use it in GitHub Desktop.
Gradle config files for publishing to MavenCentral. Full article https://proandroiddev.com/publishing-android-libraries-to-mavencentral-in-2021-8ac9975c3e52 , latest live versions of these in a working repo https://github.com/GetStream/stream-chat-android/tree/develop/scripts
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Lines to add in module level build.gradle file for modules you publish | |
ext { | |
// Provide your own coordinates here | |
PUBLISH_GROUP_ID = 'io.getstream' | |
PUBLISH_VERSION = '4.8.1' | |
PUBLISH_ARTIFACT_ID = 'stream-chat-android-client' | |
} | |
apply from: "${rootProject.projectDir}/scripts/publish-module.gradle" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Lines to add to the project level (root) build.gradle file | |
// 1a: plugins block application of the publishing plugin | |
plugins { | |
id("io.github.gradle-nexus.publish-plugin") version "1.1.0" | |
} | |
// 1b: old plugin syntax for publishing plugin | |
buildscript { | |
dependencies { | |
classpath 'io.github.gradle-nexus:publish-plugin:1.1.0' | |
} | |
} | |
apply plugin: 'io.github.gradle-nexus.publish-plugin' | |
// 2: applying separate publishing script | |
apply from: "${rootDir}/scripts/publish-root.gradle" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
apply plugin: 'maven-publish' | |
apply plugin: 'signing' | |
task androidSourcesJar(type: Jar) { | |
archiveClassifier.set('sources') | |
if (project.plugins.findPlugin("com.android.library")) { | |
// For Android libraries | |
from android.sourceSets.main.java.srcDirs | |
from android.sourceSets.main.kotlin.srcDirs | |
} else { | |
// For pure Kotlin libraries, in case you have them | |
from sourceSets.main.java.srcDirs | |
from sourceSets.main.kotlin.srcDirs | |
} | |
} | |
artifacts { | |
archives androidSourcesJar | |
} | |
group = PUBLISH_GROUP_ID | |
version = PUBLISH_VERSION | |
afterEvaluate { | |
publishing { | |
publications { | |
release(MavenPublication) { | |
// The coordinates of the library, being set from variables that | |
// we'll set up later | |
groupId PUBLISH_GROUP_ID | |
artifactId PUBLISH_ARTIFACT_ID | |
version PUBLISH_VERSION | |
// Two artifacts, the `aar` (or `jar`) and the sources | |
if (project.plugins.findPlugin("com.android.library")) { | |
from components.release | |
} else { | |
from components.java | |
} | |
artifact androidSourcesJar | |
artifact javadocJar | |
// Mostly self-explanatory metadata | |
pom { | |
name = PUBLISH_ARTIFACT_ID | |
description = 'Stream Chat official Android SDK' | |
url = 'https://github.com/getstream/stream-chat-android' | |
licenses { | |
license { | |
name = 'Stream License' | |
url = 'https://github.com/GetStream/stream-chat-android/blob/main/LICENSE' | |
} | |
} | |
developers { | |
developer { | |
id = 'zsmb13' | |
name = 'Márton Braun' | |
email = 'marton@getstream.io' | |
} | |
// Add all other devs here... | |
} | |
// Version control info - if you're using GitHub, follow the | |
// format as seen here | |
scm { | |
connection = 'scm:git:github.com/getstream/stream-chat-android.git' | |
developerConnection = 'scm:git:ssh://github.com/getstream/stream-chat-android.git' | |
url = 'https://github.com/getstream/stream-chat-android/tree/main' | |
} | |
} | |
} | |
} | |
} | |
} | |
signing { | |
useInMemoryPgpKeys( | |
rootProject.ext["signing.keyId"], | |
rootProject.ext["signing.key"], | |
rootProject.ext["signing.password"], | |
) | |
sign publishing.publications | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Create variables with empty default values | |
ext["ossrhUsername"] = '' | |
ext["ossrhPassword"] = '' | |
ext["sonatypeStagingProfileId"] = '' | |
ext["signing.keyId"] = '' | |
ext["signing.password"] = '' | |
ext["signing.key"] = '' | |
File secretPropsFile = project.rootProject.file('local.properties') | |
if (secretPropsFile.exists()) { | |
// Read local.properties file first if it exists | |
Properties p = new Properties() | |
new FileInputStream(secretPropsFile).withCloseable { is -> p.load(is) } | |
p.each { name, value -> ext[name] = value } | |
} else { | |
// Use system environment variables | |
ext["ossrhUsername"] = System.getenv('OSSRH_USERNAME') | |
ext["ossrhPassword"] = System.getenv('OSSRH_PASSWORD') | |
ext["sonatypeStagingProfileId"] = System.getenv('SONATYPE_STAGING_PROFILE_ID') | |
ext["signing.keyId"] = System.getenv('SIGNING_KEY_ID') | |
ext["signing.password"] = System.getenv('SIGNING_PASSWORD') | |
ext["signing.key"] = System.getenv('SIGNING_KEY') | |
} | |
// Set up Sonatype repository | |
nexusPublishing { | |
repositories { | |
sonatype { | |
stagingProfileId = sonatypeStagingProfileId | |
username = ossrhUsername | |
password = ossrhPassword | |
// Add these lines if using new Sonatype infra | |
// nexusUrl.set(uri("https://s01.oss.sonatype.org/service/local/")) | |
// snapshotRepositoryUrl.set(uri("https://s01.oss.sonatype.org/content/repositories/snapshots/")) | |
} | |
} | |
} |
i am getting this error.
:base:generatePomFileForMavenAarPublication.
> Cannot query the value of this property because it has no value available.
Can you help me understand how to debug this error as i am not able to catch the exact problem.
Thanks @zsmb13.
Thanks @ThomasGorisse , it really helped me escape the error of 'Could not read PGP secret key'. And build is successful after long time.
@zsmb13 Facing this issue on Github Action only
Cannot perform signing task ':universal_adapter:signReleasePublication' because it has no configured signatory
did u find any fix? i am getting same error but on local machine
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
I have this issue too