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 { artifact("$buildDir/libs/${project.getName()}-${version}.jar") } artifact androidSourcesJar // Mostly self-explanatory metadata pom { name = PUBLISH_ARTIFACT_ID description = PUBLISH_DESCRIPTION url = PUBLISH_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_SCM_CONNECTION developerConnection = PUBLISH_SCM_DEVELOPER_CONNECTION url = PUBLISH_SCM_URL } } } } } } //signing { // sign publishing.publications //}