/* * 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. */ apply plugin: 'maven-publish' 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('NEXUS_USERNAME') ? NEXUS_USERNAME : "" } def getRepositoryPassword() { return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : "" } def configurePom(pom) { pom.name = POM_NAME pom.packaging = POM_PACKAGING pom.description = POM_DESCRIPTION pom.url = POM_URL pom.scm { url = POM_SCM_URL connection = POM_SCM_CONNECTION developerConnection = POM_SCM_DEV_CONNECTION } pom.licenses { license { name = POM_LICENCE_NAME url = POM_LICENCE_URL distribution = POM_LICENCE_DIST } } pom.developers { developer { id = POM_DEVELOPER_ID name = POM_DEVELOPER_NAME } } } afterEvaluate { project -> publishing { repositories { maven { def releasesRepoUrl = getReleaseRepositoryUrl() def snapshotsRepoUrl = getSnapshotRepositoryUrl() url = isReleaseBuild() ? releasesRepoUrl : snapshotsRepoUrl credentials(PasswordCredentials) { username = getRepositoryUsername() password = getRepositoryPassword() } } } } if (project.getPlugins().hasPlugin('com.android.application') || project.getPlugins().hasPlugin('com.android.library')) { task androidJavadocs(type: Javadoc) { source = android.sourceSets.main.java.source classpath += project.files(android.getBootClasspath().join(File.pathSeparator)) excludes = ['**/*.kt'] } task androidJavadocsJar(type: Jar, dependsOn: androidJavadocs) { classifier = 'javadoc' from androidJavadocs.destinationDir } task androidSourcesJar(type: Jar) { classifier = 'sources' from android.sourceSets.main.java.source } } if (JavaVersion.current().isJava8Compatible()) { allprojects { tasks.withType(Javadoc) { options.addStringOption('Xdoclint:none', '-quiet') } } } if (JavaVersion.current().isJava9Compatible()) { allprojects { tasks.withType(Javadoc) { options.addBooleanOption('html5', true) } } } artifacts { if (project.getPlugins().hasPlugin('com.android.application') || project.getPlugins().hasPlugin('com.android.library')) { archives androidSourcesJar archives androidJavadocsJar } } android.libraryVariants.all { variant -> tasks.androidJavadocs.doFirst { classpath += files(variant.javaCompileProvider.get().classpath.files.join(File.pathSeparator)) } } publishing.publications.all { publication -> publication.groupId = GROUP publication.version = VERSION_NAME publication.artifact androidSourcesJar publication.artifact androidJavadocsJar configurePom(publication.pom) } signing { publishing.publications.all { publication -> sign publication } } }