apply plugin: 'maven' apply plugin: 'signing' def isReleaseBuild() { return version.contains("SNAPSHOT") == false } def getMavenRepositoryUrl() { return hasProperty('repositoryUrl') ? property('repositoryUrl') : "https://oss.sonatype.org/service/local/staging/deploy/maven2/" } def getMavenRepositoryUsername() { return hasProperty('sonatypeUsername') ? property('sonatypeUsername') : "" } def getMavenRepositoryPassword() { return hasProperty('sonatypePassword') ? property('sonatypePassword') : "" } afterEvaluate { project -> signing { required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } sign configurations.archives } uploadArchives { configuration = configurations.archives repositories.mavenDeployer { beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { authentication(userName: getMavenRepositoryUsername(), password: getMavenRepositoryPassword()) } pom.project { name 'SubsamplingScaleImageView' packaging 'aar' description 'Highly configurable, easily extendable deep zoom view for displaying huge images without loss of detail. Perfect for photo galleries, maps, building plans etc.' url 'https://github.com/davemorrissey/subsampling-scale-image-view' scm { url 'scm:git@github.com:davemorrissey/subsampling-scale-image-view.git' connection 'scm:git@github.com:davemorrissey/subsampling-scale-image-view.git' developerConnection 'scm:git@github.com:davemorrissey/subsampling-scale-image-view.git' } licenses { license { name 'The Apache Software License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' distribution 'repo' } } developers { developer { id 'davemorrissey' name 'Dave Morrissey' } } } } } task androidJavadocs(type: Javadoc) { onlyIf { gradle.taskGraph.hasTask("uploadArchives") } source = android.sourceSets.main.java.sourceFiles destinationDir = rootProject.file("docs/javadoc") classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) classpath += configurations.compile classpath += configurations.javadocs options.noTimestamp = true options.links = ['https://developer.android.com/reference/'] } 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 } }