diff options
author | Roberto Tyley <roberto.tyley@gmail.com> | 2014-07-26 14:56:09 +0400 |
---|---|---|
committer | Roberto Tyley <roberto.tyley@gmail.com> | 2014-07-26 14:58:19 +0400 |
commit | 8955e299f20f7b0780fc5b98fcd47df85b1922ed (patch) | |
tree | e06b652cce3d11d1baf70dae126da82724b34034 | |
parent | a60bb11bcedaf2c71ddeaa141e7e2542ff01fe75 (diff) |
Gradle: Upload signed Spongy Castle artifacts to Sonatype OSS Nexus
http://yennicktrevels.com/blog/2013/10/11/automated-gradle-project-deployment-to-sonatype-oss-repository/
Using a 'spongycastle' subgroup (ie com.madgag.spongycastle) to give a useful
grouping, apparently this is legit:
https://docs.sonatype.org/display/Repository/Choosing+your+Coordinates
Also guard against missing gradle.properties for travis, which doesn't have
to do signing or uploading to sonatype.
-rw-r--r-- | build.gradle | 76 |
1 files changed, 72 insertions, 4 deletions
diff --git a/build.gradle b/build.gradle index 727bfd22..047bb928 100644 --- a/build.gradle +++ b/build.gradle @@ -6,13 +6,81 @@ ext { bcTestDataHome = file('core/src/test/data').absolutePath } -task printProperties << { - println bcTestDataHome -} - subprojects { apply plugin: 'eclipse' apply plugin: 'java' + apply plugin: 'maven' + apply plugin: 'signing' + + group = 'com.madgag.spongycastle' + + task javadocJar(type: Jar, dependsOn: javadoc) { + classifier = 'javadoc' + from 'build/docs/javadoc' + } + + task sourcesJar(type: Jar) { + from sourceSets.main.allSource + classifier = 'sources' + } + + artifacts { + archives jar + + archives javadocJar + archives sourcesJar + } + + if (project.hasProperty("signing.keyId")) { + signing { + sign configurations.archives + } + } + + if (project.hasProperty("sonatypeUsername")) { + uploadArchives { + repositories { + mavenDeployer { + beforeDeployment { MavenDeployment deployment -> signing.signPom(deployment) } + + repository(url: "https://oss.sonatype.org/service/local/staging/deploy/maven2/") { + authentication(userName: sonatypeUsername, password: sonatypePassword) + } + + pom.project { + name 'Spongy Castle' + packaging 'jar' + description 'Spongy Castle is a package-rename (org.bouncycastle.* to org.spongycastle.*) of Bouncy Castle\n' + + 'intended for the Android platform. Android unfortunately ships with a stripped-down version of\n' + + 'Bouncy Castle, which prevents easy upgrades - Spongy Castle overcomes this and provides a full,\n' + + 'up-to-date version of the Bouncy Castle cryptographic libs.' + url 'http://rtyley.github.io/spongycastle/' + + scm { + url 'scm:git@github.com:rtyley/spongycastle.git' + connection 'scm:git@github.com:rtyley/spongycastle.git' + developerConnection 'scm:git@github.com:rtyley/spongycastle.git' + } + + licenses { + license { + name 'Bouncy Castle Licence' + url 'http://www.bouncycastle.org/licence.html' + distribution 'repo' + } + } + + developers { + developer { + id 'rtyley' + name 'Roberto Tyley' + } + } + } + } + } + } + } repositories { mavenCentral() |