/* * Copyright 2013 Chris Banes * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * * Based on: https://github.com/mcxiaoke/gradle-mvn-push/blob/master/gradle-mvn-push.gradle. */ apply plugin: 'maven' apply plugin: 'signing' version = VERSION_NAME group = GROUP 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:"") } 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()) } 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 "Simplified BSD License" url "http://www.opensource.org/licenses/bsd-license" distribution = "repo" } license { name "The Apache Software License, Version 2.0" url "http://www.apache.org/licenses/LICENSE-2.0.txt" distribution = "repo" } } developers { developer { id POM_DEVELOPER_ID name POM_DEVELOPER_NAME email POM_DEVELOPER_EMAIL } } } } } } signing { required { isReleaseBuild() && gradle.taskGraph.hasTask("uploadArchives") } sign configurations.archives } if (project.getPlugins().hasPlugin('android') || project.getPlugins().hasPlugin('android-library')) { def releaseVariants = project.android.libraryVariants.findAll { variant -> variant.buildType.name.equalsIgnoreCase("release") } def androidSdkDirectory = project.android.sdkDirectory task androidJavadocs(type: Javadoc) { classifier = 'javadoc' source = releaseVariants.collect { it.javaCompile.source } classpath = files(releaseVariants.collect { files(it.javaCompile.classpath.files, project.android.bootClasspath) }) options { links("http://docs.oracle.com/javase/7/docs/api/") linksOffline("http://d.android.com/reference", "${androidSdkDirectory}/docs/reference") } exclude '**/BuildConfig.java' exclude '**/R.java' } task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { classifier = 'javadoc' from androidJavadocs.destinationDir } task androidSourcesJar(type: Jar) { classifier = 'sources' from project.android.sourceSets.main.java.source } } else { task sourcesJar(type: Jar, dependsOn:classes) { classifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn:javadoc) { classifier = 'javadoc' from javadoc.destinationDir } } artifacts { if (project.getPlugins().hasPlugin('android') || project.getPlugins().hasPlugin('android-library')) { archives androidSourcesJar archives androidJavadocsJar } else { archives sourcesJar archives javadocJar } } }