buildscript { repositories { maven { url 'https://repo.spring.io/plugins-release' } } dependencies { classpath 'org.springframework.build.gradle:propdeps-plugin:0.0.7' } } apply plugin: 'java' apply plugin: 'propdeps' apply plugin: 'propdeps-idea' apply plugin: 'propdeps-maven' ext { springVersion = '4.2.3.RELEASE' reactorVersion = '2.5.0.BUILD-SNAPSHOT' tomcatVersion = '8.0.28' jettyVersion = '9.3.5.v20151012' } configurations { jarjar reactorstream } task reactorstreamRepackJar(type: Jar) { repackJar -> repackJar.baseName = "spring-reactive-reactorstream-repack" repackJar.version = reactorVersion doLast() { project.ant { taskdef name: "jarjar", classname: "com.tonicsystems.jarjar.JarJarTask", classpath: configurations.jarjar.asPath jarjar(destfile: repackJar.archivePath) { configurations.reactorstream.each { originalJar -> zipfileset(src: originalJar) } // repackage reactor. => org.springframework.reactor rule(pattern: "reactor.rx.**", result: "org.springframework.reactor.rx.@1") } } } } jar { baseName = 'spring-reactive' dependsOn reactorstreamRepackJar from(zipTree(reactorstreamRepackJar.archivePath)) { include "reactor/rx/subscriber/BlockingQueueSubscriber.java" } } group = 'org.springframework.reactive' repositories { mavenCentral() maven { url 'https://oss.jfrog.org/libs-snapshot' } // RxNetty 0.5.x snapshots maven { url 'http://repo.spring.io/snapshot' } // Reactor snapshot mavenLocal() } configurations.all { // check for updates every build resolutionStrategy.cacheChangingModulesFor 0, 'seconds' } dependencies { compile "org.springframework:spring-core:${springVersion}" compile "org.springframework:spring-web:${springVersion}" compile "org.reactivestreams:reactive-streams:1.0.0" compile "io.projectreactor:reactor-core:${reactorVersion}" compile "commons-logging:commons-logging:1.2" reactorstream("io.projectreactor:reactor-stream:${reactorVersion}@jar") compile(files(reactorstreamRepackJar)) optional 'io.reactivex:rxjava:1.1.0' optional "io.reactivex:rxnetty-http:0.5.0-SNAPSHOT" optional "com.fasterxml.jackson.core:jackson-databind:2.6.2" optional "io.projectreactor:reactor-stream:${reactorVersion}" optional "io.projectreactor:reactor-net:${reactorVersion}" optional "org.apache.tomcat:tomcat-util:${tomcatVersion}" optional "org.apache.tomcat.embed:tomcat-embed-core:${tomcatVersion}" optional 'io.undertow:undertow-core:1.3.5.Final' optional "org.eclipse.jetty:jetty-server:${jettyVersion}" optional "org.eclipse.jetty:jetty-servlet:${jettyVersion}" provided "javax.servlet:javax.servlet-api:3.1.0" jarjar("com.googlecode.jarjar:jarjar:1.3") testCompile "junit:junit:4.12" testCompile "org.springframework:spring-test:${springVersion}" testCompile "org.slf4j:slf4j-jcl:1.7.12" testCompile "org.slf4j:jul-to-slf4j:1.7.12" testCompile("log4j:log4j:1.2.16") testCompile("org.mockito:mockito-core:1.10.19") { exclude group: 'org.hamcrest', module: 'hamcrest-core' } testCompile("org.hamcrest:hamcrest-all:1.3") }