diff options
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/gradle-publish.gradle')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/gradle-publish.gradle | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/gradle-publish.gradle b/platform/android/MapboxGLAndroidSDK/gradle-publish.gradle new file mode 100644 index 0000000000..f017434fac --- /dev/null +++ b/platform/android/MapboxGLAndroidSDK/gradle-publish.gradle @@ -0,0 +1,153 @@ +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 + } +}
\ No newline at end of file |