blob: 394cf7f697dd1bb746da165f8dfc31a315275ba0 [file] [log] [blame]
// Establish version and status
def performingRelease = project.hasProperty('release') && Boolean.parseBoolean(project.release)
def releaseVersion = '1.1.12'
def versionPostfix = performingRelease?'':'-SNAPSHOT'
version = "${releaseVersion}${versionPostfix}"
status = performingRelease?'release':'snapshot'
apply plugin: 'idea'
subprojects
{
apply plugin: 'java'
apply plugin: 'idea'
group = 'com.netflix.curator'
version = rootProject.version
sourceCompatibility = 1.6
tasks.test.useTestNG()
// GRADLE-2087 workaround, perform after java plugin
status = rootProject.status
repositories
{
mavenCentral()
maven
{
url "https://repository.jboss.org/nexus/content/groups/public/"
}
}
test.testLogging.showStandardStreams = project.hasProperty('log')
dependencies
{
compile('org.apache.zookeeper:zookeeper:3.4.3')
{
exclude group: 'com.sun.jmx', module: 'jmxri'
exclude group: 'com.sun.jdmk', module: 'jmxtools'
exclude group: 'javax.jms', module: 'jms'
// JLine pulls this in as a compile dependency, they have fixed it in future versions
exclude group: 'junit', module: 'junit'
}
compile 'com.google.guava:guava:11.0.1'
testCompile 'org.testng:testng:6.1.1'
testCompile 'log4j:log4j:1.2.16'
}
task sourcesJar(type: Jar, dependsOn:classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn:javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir
}
artifacts {
archives jar
archives sourcesJar
archives javadocJar
}
// Maven side of things
apply plugin: 'maven' // Java plugin has to have been already applied for the conf2scope mappings to work
apply plugin: 'signing'
if (gradle.startParameter.taskNames.contains("uploadMavenCentral")) {
signing {
required true
sign configurations.archives
}
} else {
task signArchives {
// do nothing
}
}
/**
* Publishing to Maven Central example provided from http://jedicoder.blogspot.com/2011/11/automated-gradle-project-deployment-to.html
*/
task uploadMavenCentral(type:Upload) {
configuration = configurations.archives
dependsOn 'signArchives'
doFirst {
repositories.mavenDeployer {
beforeDeployment { org.gradle.api.artifacts.maven.MavenDeployment deployment -> signing.signPom(deployment) }
// To test deployment locally, use the following instead of oss.sonatype.org
//repository(url: "file://localhost/${rootProject.rootDir}/repo")
repository(url: 'https://oss.sonatype.org/service/local/staging/deploy/maven2') {
authentication(userName: rootProject.sonatypeUsername, password: rootProject.sonatypePassword)
}
// Prevent datastamp from being appending to artifacts during deployment
uniqueVersion = false
// Closure to configure all the POM with extra info, common to all projects
pom.project {
parent {
groupId 'org.sonatype.oss'
artifactId 'oss-parent'
version '7'
}
url 'https://github.com/Netflix/curator'
licenses {
license {
name 'The Apache Software License, Version 2.0'
url 'http://www.apache.org/licenses/LICENSE-2.0.txt'
distribution 'repo'
}
}
scm {
connection 'scm:git:git@github.com:Netflix/curator.git'
url 'scm:git:git@github.com:Netflix/curator.git'
developerConnection 'scm:git:git@github.com:Netflix/curator.git'
}
issueManagement {
system 'github'
url 'https://github.com/Netflix/curator/issues'
}
}
}
}
}
}
task aggregateJavadoc(type: Javadoc) {
description = 'Aggregate all subproject docs into a single docs directory'
source subprojects.collect {project -> project.sourceSets.main.allJava }
classpath = files(subprojects.collect {project -> project.sourceSets.main.compileClasspath})
destinationDir = new File(projectDir, 'doc')
}
project(':curator-client')
{
dependencies
{
compile 'org.slf4j:slf4j-api:1.6.3'
// Original has commons-logging
testCompile 'org.mockito:mockito-core:1.8.5'
testCompile project(':curator-test')
}
}
project(':curator-test')
{
dependencies
{
compile 'org.javassist:javassist:3.15.0-GA'
compile 'org.apache.commons:commons-math:2.2'
}
}
project(':curator-framework')
{
dependencies
{
compile project(':curator-client')
testCompile project(':curator-test')
}
}
project(':curator-recipes')
{
dependencies
{
compile project(':curator-framework')
testCompile 'org.mockito:mockito-core:1.8.5'
testCompile project(':curator-test')
}
}
project(':curator-x-discovery')
{
dependencies
{
compile project(':curator-framework')
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.2'
testCompile project(':curator-test')
}
}
project(':curator-x-discovery-server')
{
dependencies
{
compile project(':curator-x-discovery')
compile 'javax.ws.rs:jsr311-api:1.1.1'
testCompile project(':curator-test')
testCompile 'junit:junit-dep:4.10'
testCompile 'com.sun.jersey:jersey-server:1.11'
testCompile 'com.sun.jersey:jersey-servlet:1.11'
testCompile 'com.sun.jersey:jersey-client:1.11'
testCompile 'com.sun.jersey:jersey-core:1.11'
testCompile 'org.jboss.resteasy:resteasy-jaxrs:2.3.0.GA'
testCompile 'org.mortbay.jetty:jetty:6.1.22'
}
}
// Generate wrapper, which is distributed as part of source to alleviate the need of installing gradle
task createWrapper(type: Wrapper) {
gradleVersion = '1.0-milestone-9'
}