apply plugin: 'maven' apply plugin: 'signing' allprojects { group project.GROUP version project.VERSION_NAME repositories { mavenCentral() } } repositories { mavenCentral() } // From https://raw.github.com/mcxiaoke/gradle-mvn-push/master/jar.gradle android.libraryVariants.all { variant -> def jarTask = project.tasks.create(name: "jar${variant.name.capitalize()}", type: Jar) { from variant.javaCompile.destinationDir exclude "**/R.class" exclude "**/BuildConfig.class" } jarTask.dependsOn variant.javaCompile artifacts.add('archives', jarTask); } // From https://raw.github.com/mcxiaoke/gradle-mvn-push/master/gradle-mvn-push.gradle def isReleaseBuild() { return VERSION_NAME.contains("SNAPSHOT") == false } def getReleaseRepositoryUrl() { return hasProperty('RELEASE_REPOSITORY_URL') ? RELEASE_REPOSITORY_URL : "https://oss.sonatype.org/service/local/staging/deploy/maven2/" } def getSnapshotRepositoryUrl() { return hasProperty('SNAPSHOT_REPOSITORY_URL') ? SNAPSHOT_REPOSITORY_URL : "https://oss.sonatype.org/content/repositories/snapshots/" } def getRepositoryUsername() { return hasProperty('USERNAME') ? USERNAME : (hasProperty('NEXUS_USERNAME') ? NEXUS_USERNAME : "") } def getRepositoryPassword() { return hasProperty('PASSWORD') ? PASSWORD : (hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : "") } task apklib(type: Zip) { appendix = extension = 'apklib' from 'AndroidManifest.xml' into('res') { from 'res' } into('src') { from 'src' } } artifacts { archives apklib } afterEvaluate { project -> uploadArchives { repositories { mavenDeployer { beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } pom.groupId = GROUP pom.artifactId = POM_ARTIFACT_ID pom.version = VERSION_NAME repository(url: getReleaseRepositoryUrl()) { authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) } snapshotRepository(url: getSnapshotRepositoryUrl()) { authentication(userName: getRepositoryUsername(), password: getRepositoryPassword()) } /* // Leaving out as artifact was incorrectly named when found addFilter('aar') { artifact, file -> artifact.name == archivesBaseName } addFilter('apklib') { artifact, file -> artifact.name == archivesBaseName + '-apklib' } */ pom.project { name POM_NAME packaging POM_PACKAGING description POM_DESCRIPTION url POM_URL scm { url POM_SCM_URL connection POM_SCM_CONNECTION developerConnection POM_SCM_DEV_CONNECTION } licenses { license { name POM_LICENCE_NAME url POM_LICENCE_URL distribution POM_LICENCE_DIST } } developers { developer { id POM_DEVELOPER_ID name POM_DEVELOPER_NAME } } } } } } signing { required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } sign configurations.archives } task androidJavadocs(type: Javadoc) { source = android.sourceSets.main.java.sourceFiles classpath = files(android.bootClasspath) } task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { classifier = 'javadoc' from androidJavadocs.destinationDir } task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.sourceFiles } artifacts { archives androidSourcesJar archives androidJavadocsJar } }