aboutsummaryrefslogtreecommitdiff
path: root/scripts
diff options
context:
space:
mode:
authorSam Judd <judds@google.com>2014-07-05 16:48:24 -0700
committerSam Judd <judds@google.com>2014-07-05 21:01:50 -0700
commit55fe76154dd6c5af83cd3557f37c0d6368f3c046 (patch)
tree3cdaf13c9c2e56718f10856ad1e35d623bf5b74f /scripts
parent86ea385b773a81e0f5c6b1bb677a752855e504e0 (diff)
downloadglide-55fe76154dd6c5af83cd3557f37c0d6368f3c046.tar.gz
Cleanup build and depend on local upload script.
Diffstat (limited to 'scripts')
-rw-r--r--scripts/upload.gradle160
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
+ }
+ }
+}