version = '1.0.0-build222' project.ext { target = '1.5' release = project.hasProperty('release') ? project.property('release') : false buildNumber = project.hasProperty('revision') ? project.revision : null if (buildNumber == null) { if (release) { throw new GradleException('release or interim targets requires build number to be specified via revision project property (-Prevision=REV)') } def buildTime = new java.text.SimpleDateFormat("yyyyMMddHHmmss", java.util.Locale.US).format(new Date()) buildNumber = 't' + buildTime } if (!release) { rootProject.version = rootProject.version + '-SNAPSHOT' } println "version : ${rootProject.version}" println "build number : ${rootProject.buildNumber}" } task wrapper(type: Wrapper) { gradleVersion = '2.14' } subprojects { apply plugin : 'java' apply plugin : 'maven' apply plugin : 'signing' sourceCompatibility = target targetCompatibility = target jar { metaInf { from rootProject.file('LICENSE.txt') } manifest { attributes ( 'Build-Version' : rootProject.version, 'Build-Number' : rootProject.buildNumber ) } } task sourcesJar(type: Jar) { description = 'Builds Java Sources Jar' from sourceSets.main.java.srcDirs classifier = 'sources' } task javadocJar(type: Jar, dependsOn: javadoc) { description="Builds Javadoc Jar" from "$docsDir/javadoc" classifier = 'javadoc' } signing { required { project.hasProperty('signing.keyId') } sign configurations.archives } artifacts { archives jar, sourcesJar, javadocJar } uploadArchives { dependsOn signArchives repositories.mavenDeployer { beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } repository( url : "${mavenReleasesRepository}") { if (project.hasProperty('mavenUser')) { authentication(userName: "${mavenUser}", password: "${mavenPassword}") } } snapshotRepository( url : "${mavenSnapshotsRepository}") { if (project.hasProperty('mavenUser')) { authentication(userName: "${mavenUser}", password: "${mavenPassword}") } } pom.groupId = 'com.trilead' pom.packaging = 'jar' pom.version = rootProject.version pom.project { url 'https://svn.tmatesoft.com/repos/3rdparty/com.trilead.ssh2' name 'Trilead SSH-2 Java Library' description 'Pure Java SSH-2 Library' licenses { license { url 'http://svn.tmatesoft.com/repos/3rdparty/com.trileads.ssh2/trunk/LICENSE.txt' name 'Trilead Library License (BSD-Like)' } } developers { developer { id 'tmate' name 'TMate Software' } developer { id 'trilead' name 'Trilead AG' } } scm { url 'https://svn.tmatesoft.com/repos/3rdparty/com.trilead.ssh2' connection 'scm:svn:https://svn.tmatesoft.com/repos/3rdparty/com.trilead.ssh2' } } pom.whenConfigured { p -> p.dependencies = p.dependencies.findAll { dep -> false; } } } } } configure(project(':trilead-ssh2')) { jar { baseName = 'trilead-ssh2' } } configure(project(':trilead-ssh2-osgi')) { apply plugin : 'osgi' dependencies { compile project(':trilead-ssh2') } classes << { configurations.compile.files.each { File jar -> copy { from zipTree(jar) into sourceSets.main.output.classesDir exclude 'META-INF/**' } } } jar { ext { bundleName = 'com.trilead.ssh2' bundleVersion = rootProject.version.replace('-SNAPSHOT', '_SNAPSHOT').replace('-', '.') + '_' + buildNumber bundleVendor = 'TMate Software on behalf of Trilead AG' println "OSGi version: ${bundleVersion}" } baseName = 'trilead-ssh2-osgi' manifest { instruction 'Bundle-Description', 'Triead SSH Library' instruction 'Export-Package', 'com.trilead.ssh2.*;version=' + bundleVersion instruction 'Import-Package', '!*' attributes 'Bundle-SymbolicName': bundleName, 'Bundle-Version': bundleVersion, 'Bundle-Vendor': bundleVendor, 'Bundle-RequiredExecutionEnvironment' : 'J2SE-' + targetCompatibility, 'Build-Version' : rootProject.version, 'Build-Number' : rootProject.buildNumber } } conf2ScopeMappings.mappings.remove(configurations.compile) }