diff --git a/build.gradle b/build.gradle index 008c06b..cd08314 100644 --- a/build.gradle +++ b/build.gradle @@ -14,6 +14,8 @@ version = '0.6.1-SNAPSHOT' apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'osgi' +apply plugin: 'maven' +apply plugin: 'signing' apply plugin: 'io.codearte.nexus-staging' buildscript { @@ -70,6 +72,78 @@ task fatJar(type: Jar, dependsOn: classes) { from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } } +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 +} + +signing { + sign configurations.archives +} + +signArchives.onlyIf { + project.hasProperty('signing.keyId') && project.hasProperty('signing.password') && project.hasProperty('signing.secretKeyRingFile') +} + +def doUploadArchives = project.hasProperty('sonatypeUsername') && project.hasProperty('sonatypePassword') + +if(doUploadArchives) { + 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) + } + + snapshotRepository(url: 'https://oss.sonatype.org/content/repositories/snapshots') { + authentication(userName: sonatypeUsername, password: sonatypePassword) + } + + pom.project { + name 'Flowless' + description 'Efficient VirtualFlow for JavaFX.' + url 'http://www.fxmisc.org/flowless/' + packaging 'jar' + licenses { + license { + name 'The BSD 2-Clause License' + url 'http://opensource.org/licenses/BSD-2-Clause' + distribution 'repo' + } + } + scm { + url 'scm:git@github.com:FXMisc/Flowless.git' + connection 'scm:git@github.com:FXMisc/Flowless.git' + developerConnection 'scm:git@github.com:FXMisc/Flowless.git' + } + developers { + developer { + name 'Tomas Mikula' + } + developer { + name 'Jordan Martinez' + } + } + } + } + } +} + +uploadArchives.onlyIf { doUploadArchives } + assemble.dependsOn fatJar task getVersion {