File secretPropsFile = project.rootProject.file('local.properties') if (secretPropsFile.exists()) { println "Found secret props file, loading props" Properties p = new Properties() p.load(new FileInputStream(secretPropsFile)) p.each { name, value -> ext[name] = value } } else { println "No props file, loading env vars" } publishing { publications { release(MavenPublication) { // The coordinates of the library, being set from variables that // we'll set up in a moment groupId PUBLISH_GROUP_ID artifactId PUBLISH_ARTIFACT_ID version PUBLISH_VERSION
// Two artifacts, the `aar` and the sources artifact("$buildDir/outputs/aar/${project.getName()}-release.aar") artifact androidSourcesJar
// Self-explanatory metadata for the most part pom { name = PUBLISH_ARTIFACT_ID description = PUBLISH_DESCRIPTION // If your project has a dedicated site, use its URL here url = PUBLISH_GITHUB_URL licenses { license { name = PUBLISH_LICENSE_NAME url = PUBLISH_LICENSE_URL } } developers { developer { id = PUBLISH_DEVELOPER_ID name = PUBLISH_DEVELOPER_NAME email = PUBLISH_DEVELOPER_EMAIL } } // Version control info, if you're using GitHub, follow the format as seen here scm { connection = PUBLISH_CONNECTION developerConnection = PUBLISH_CONNECTION_DEVELOPER url = PUBLISH_CONNECTION_URL } // A slightly hacky fix so that your POM will include any transitive dependencies // that your library builds upon withXml { def dependenciesNode = asNode().appendNode('dependencies')
project.configurations.implementation.allDependencies.each { def dependencyNode = dependenciesNode.appendNode('dependency') dependencyNode.appendNode('groupId', it.group) dependencyNode.appendNode('artifactId', it.name) dependencyNode.appendNode('version', it.version) } } } } } repositories { // The repository to publish to, Sonatype/MavenCentral maven { // This is an arbitrary name, you may also use "mavencentral" or // any other name that's descriptive for you name = PUBLISH_MAVEN_NAME
def releasesRepoUrl = "https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/" def snapshotsRepoUrl = "https://s01.oss.sonatype.org/content/repositories/snapshots/" // You only need this if you want to publish snapshots, otherwise just set the URL // to the release repo directly url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl