apply plugin: 'maven' apply plugin: 'maven-publish' task sourceJar(type: Jar, dependsOn: classes) { classifier = 'sources' from sourceSets.main.allSource } task javadocJar(type: Jar, dependsOn: javadoc) { classifier = 'javadoc' from javadoc.destinationDir } artifacts { archives jar, sourceJar, javadocJar } ext.isSnapshot = (VersionNumber.parse(rootProject.version).qualifier == "SNAPSHOT") ext.isOfficialSdk = (System.env.TRAVIS_JDK_VERSION == officialJdk) ext.isMainline = (System.env.TRAVIS_PULL_REQUEST == "false") publishing { publications { Sshlib(MavenPublication) { from components.java artifact sourceJar artifact javadocJar groupId 'org.connectbot' } } } uploadArchives { repositories { mavenDeployer { beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } } } } install { repositories.mavenInstaller { pom { project { name project.name description project.description url gitHubUrl licenses { license { name 'Apache License, Version 2.0' url 'http://www.apache.org/licenses/LICENSE-2.0.txt' } } developers { developer { id 'kruton' name 'Kenny Root' email 'kenny@the-b.org' } } scm { connection "${gitHubUrl}.git" developerConnection "${gitHubUrl}.git" url gitHubUrl } } } } } //Load data from environment if present to support Travis ['bintrayUser', 'bintrayApiKey'].each{ if (System.env[it]) project[it] = System.env[it] } //This is only needed if bintrayUpload is done as part of releasing task updateBintrayVersion << { bintray.pkg.version.name = project.version } bintrayUpload.dependsOn updateBintrayVersion bintray { user = bintrayUser key = bintrayApiKey publish = true pkg { userOrg = 'connectbot' repo = 'maven' name = project.name licenses = ['Apache-2.0'] configurations = ['archives'] websiteUrl = gitHubUrl vcsUrl = "${gitHubUrl}.git" } } //Bintray is for official releases bintrayUpload.onlyIf { project.isOfficialSdk && !project.isSnapshot && project.isMainline } artifactory { contextUrl = 'https://oss.jfrog.org/artifactory' publish { repository { repoKey = 'oss-snapshot-local' username = bintrayUser password = bintrayApiKey } defaults { publications('Sshlib') } } } //Artifactory is for publishing snapshots artifactoryPublish.onlyIf { project.isOfficialSdk && project.isSnapshot && project.isMainline }