diff options
author | Sam Judd <judds@google.com> | 2014-07-05 16:48:24 -0700 |
---|---|---|
committer | Sam Judd <judds@google.com> | 2014-07-05 21:01:50 -0700 |
commit | 55fe76154dd6c5af83cd3557f37c0d6368f3c046 (patch) | |
tree | 3cdaf13c9c2e56718f10856ad1e35d623bf5b74f /scripts | |
parent | 86ea385b773a81e0f5c6b1bb677a752855e504e0 (diff) | |
download | glide-55fe76154dd6c5af83cd3557f37c0d6368f3c046.tar.gz |
Cleanup build and depend on local upload script.
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/upload.gradle | 160 |
1 files changed, 160 insertions, 0 deletions
diff --git a/scripts/upload.gradle b/scripts/upload.gradle new file mode 100644 index 00000000..fc3a47ff --- /dev/null +++ b/scripts/upload.gradle @@ -0,0 +1,160 @@ +/* + * 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 + } + } +} |