diff --git a/build.gradle b/build.gradle index 3a7d34382b..2fb33ab009 100644 --- a/build.gradle +++ b/build.gradle @@ -27,40 +27,54 @@ ext { moduleProjects = subprojects.findAll { !it.name.equals('spring-build-src') && !it.name.equals('spring-framework-bom') } + + aspectjVersion = "1.9.1" + freemarkerVersion = "2.3.28" + groovyVersion = "2.5.0" + hsqldbVersion = "2.4.1" + jackson2Version = "2.9.5" + jettyVersion = "9.4.11.v20180605" + junitPlatformVersion = "1.2.0" + junitJupiterVersion = "5.2.0" + junitVintageVersion = "5.2.0" + kotlinVersion = "1.2.41" + log4jVersion = "2.11.0" + nettyVersion = "4.1.25.Final" + reactorVersion = "Californium-BUILD-SNAPSHOT" + rxjavaVersion = "1.3.8" + rxjavaAdapterVersion = "1.2.1" + rxjava2Version = "2.1.14" + slf4jVersion = "1.7.25" // spring-jcl + consistent 3rd party deps + tiles3Version = "3.0.8" + tomcatVersion = "9.0.8" + undertowVersion = "2.0.9.Final" + + gradleScriptDir = "${rootProject.projectDir}/gradle" + withoutJclOverSlf4J = { + exclude group: "org.slf4j", module: "jcl-over-slf4j" + } } configure(allprojects) { project -> group = "org.springframework" version = qualifyVersionIfNecessary(version) - ext.aspectjVersion = "1.9.1" - ext.freemarkerVersion = "2.3.28" - ext.groovyVersion = "2.5.0" - ext.hsqldbVersion = "2.4.1" - ext.jackson2Version = "2.9.5" - ext.jettyVersion = "9.4.11.v20180605" - ext.junitPlatformVersion = "1.2.0" - ext.junitJupiterVersion = "5.2.0" - ext.junitVintageVersion = "5.2.0" - ext.kotlinVersion = "1.2.41" - ext.log4jVersion = "2.11.0" - ext.nettyVersion = "4.1.25.Final" - ext.reactorVersion = "Californium-BUILD-SNAPSHOT" - ext.rxjavaVersion = "1.3.8" - ext.rxjavaAdapterVersion = "1.2.1" - ext.rxjava2Version = "2.1.14" - ext.slf4jVersion = "1.7.25" // spring-jcl + consistent 3rd party deps - ext.tiles3Version = "3.0.8" - ext.tomcatVersion = "9.0.8" - ext.undertowVersion = "2.0.9.Final" - - ext.gradleScriptDir = "${rootProject.projectDir}/gradle" - apply plugin: "propdeps" apply plugin: "java" apply plugin: "test-source-set-dependencies" + apply plugin: "io.spring.dependency-management" apply from: "${gradleScriptDir}/ide.gradle" + dependencyManagement { + resolutionStrategy { + cacheChangingModulesFor 0, 'seconds' + } + applyMavenExclusions = false + generatedPomCustomization { + enabled = false + } + } + apply plugin: "kotlin" compileKotlin { kotlinOptions { @@ -88,7 +102,6 @@ configure(allprojects) { project -> } } - exclude group: "org.slf4j", module: "jcl-over-slf4j" } def commonCompilerArgs = @@ -231,7 +244,6 @@ configure(rootProject) { description = "Spring Framework" apply plugin: "groovy" - apply plugin: "io.spring.dependency-management" apply from: "${gradleScriptDir}/jdiff.gradle" apply from: "${gradleScriptDir}/docs.gradle" @@ -239,10 +251,6 @@ configure(rootProject) { imports { mavenBom "io.projectreactor:reactor-bom:${reactorVersion}" } - resolutionStrategy { - cacheChangingModulesFor 0, 'seconds' - } - applyMavenExclusions = false } // don't publish the default jar for the root project diff --git a/gradle/publish-maven.gradle b/gradle/publish-maven.gradle index eff54387f6..249d23f4ce 100644 --- a/gradle/publish-maven.gradle +++ b/gradle/publish-maven.gradle @@ -18,6 +18,11 @@ def customizePom(pom, gradleProject) { "$dep.scope:$dep.groupId:$dep.artifactId" } + def managedVersions = dependencyManagement.managedVersions + generatedPom.dependencies.findAll{dep -> !dep.version }.each { dep -> + dep.version = managedVersions["${dep.groupId}:${dep.artifactId}"] + } + // add all items necessary for maven central publication generatedPom.project { name = gradleProject.description diff --git a/spring-core/spring-core.gradle b/spring-core/spring-core.gradle index 5cc3a33d24..31d2cf95e8 100644 --- a/spring-core/spring-core.gradle +++ b/spring-core/spring-core.gradle @@ -1,16 +1,10 @@ description = "Spring Core" -apply plugin: "io.spring.dependency-management" - dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:${reactorVersion}" mavenBom "io.netty:netty-bom:${nettyVersion}" } - resolutionStrategy { - cacheChangingModulesFor 0, 'seconds' - } - applyMavenExclusions = false } // As of Spring 4.0.3, spring-core includes asm 5.x and repackages cglib 3.2, inlining diff --git a/spring-framework-bom/spring-framework-bom.gradle b/spring-framework-bom/spring-framework-bom.gradle index 4076574756..d748629ca4 100644 --- a/spring-framework-bom/spring-framework-bom.gradle +++ b/spring-framework-bom/spring-framework-bom.gradle @@ -1,11 +1,5 @@ description = "Spring Framework (Bill of Materials)" -dependencyManagement { - generatedPomCustomization { - enabled = false - } -} - configurations.archives.artifacts.clear() artifacts { // work around GRADLE-2406 by attaching text artifact diff --git a/spring-messaging/spring-messaging.gradle b/spring-messaging/spring-messaging.gradle index 3e2d806043..b1a31af5ba 100644 --- a/spring-messaging/spring-messaging.gradle +++ b/spring-messaging/spring-messaging.gradle @@ -1,16 +1,10 @@ description = "Spring Messaging" -apply plugin: "io.spring.dependency-management" - dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:${reactorVersion}" mavenBom "io.netty:netty-bom:${nettyVersion}" } - resolutionStrategy { - cacheChangingModulesFor 0, 'seconds' - } - applyMavenExclusions = false } dependencies { diff --git a/spring-test/spring-test.gradle b/spring-test/spring-test.gradle index 62d1be5b36..3c27337d4d 100644 --- a/spring-test/spring-test.gradle +++ b/spring-test/spring-test.gradle @@ -1,16 +1,10 @@ description = "Spring TestContext Framework" -apply plugin: "io.spring.dependency-management" - dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:${reactorVersion}" mavenBom "io.netty:netty-bom:${nettyVersion}" } - resolutionStrategy { - cacheChangingModulesFor 0, 'seconds' - } - applyMavenExclusions = false } dependencies { @@ -74,8 +68,8 @@ dependencies { testCompile("com.thoughtworks.xstream:xstream:1.4.10") testCompile("com.rometools:rome:1.9.0") testCompile("org.apache.tiles:tiles-api:${tiles3Version}") - testCompile("org.apache.tiles:tiles-core:${tiles3Version}") - testCompile("org.apache.tiles:tiles-servlet:${tiles3Version}") + testCompile("org.apache.tiles:tiles-core:${tiles3Version}", withoutJclOverSlf4J) + testCompile("org.apache.tiles:tiles-servlet:${tiles3Version}", withoutJclOverSlf4J) testCompile("org.hsqldb:hsqldb:${hsqldbVersion}") testCompile("org.apache.httpcomponents:httpclient:4.5.5") { exclude group: "commons-logging", module: "commons-logging" diff --git a/spring-web/spring-web.gradle b/spring-web/spring-web.gradle index 98b7342ed9..abd18c6f85 100644 --- a/spring-web/spring-web.gradle +++ b/spring-web/spring-web.gradle @@ -1,17 +1,10 @@ description = "Spring Web" -apply plugin: "groovy" -apply plugin: "io.spring.dependency-management" - dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:${reactorVersion}" mavenBom "io.netty:netty-bom:${nettyVersion}" } - resolutionStrategy { - cacheChangingModulesFor 0, 'seconds' - } - applyMavenExclusions = false } dependencies { diff --git a/spring-webflux/spring-webflux.gradle b/spring-webflux/spring-webflux.gradle index 5dbc8224b5..d4347328cc 100644 --- a/spring-webflux/spring-webflux.gradle +++ b/spring-webflux/spring-webflux.gradle @@ -1,16 +1,10 @@ description = "Spring WebFlux" -apply plugin: "io.spring.dependency-management" - dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:${reactorVersion}" mavenBom "io.netty:netty-bom:${nettyVersion}" } - resolutionStrategy { - cacheChangingModulesFor 0, 'seconds' - } - applyMavenExclusions = false } dependencies { diff --git a/spring-webmvc/spring-webmvc.gradle b/spring-webmvc/spring-webmvc.gradle index 56f482f5ad..97e7718400 100644 --- a/spring-webmvc/spring-webmvc.gradle +++ b/spring-webmvc/spring-webmvc.gradle @@ -1,15 +1,9 @@ description = "Spring Web MVC" -apply plugin: "io.spring.dependency-management" - dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:${reactorVersion}" } - resolutionStrategy { - cacheChangingModulesFor 0, 'seconds' - } - applyMavenExclusions = false } dependencies { @@ -35,13 +29,14 @@ dependencies { optional("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:${jackson2Version}") optional("com.fasterxml.jackson.dataformat:jackson-dataformat-smile:${jackson2Version}") optional("com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:${jackson2Version}") - optional("org.apache.tiles:tiles-api:${tiles3Version}") - optional("org.apache.tiles:tiles-core:${tiles3Version}") - optional("org.apache.tiles:tiles-servlet:${tiles3Version}") - optional("org.apache.tiles:tiles-jsp:${tiles3Version}") - optional("org.apache.tiles:tiles-el:${tiles3Version}") + optional("org.apache.tiles:tiles-api:${tiles3Version}", withoutJclOverSlf4J) + optional("org.apache.tiles:tiles-core:${tiles3Version}", withoutJclOverSlf4J) + optional("org.apache.tiles:tiles-servlet:${tiles3Version}", withoutJclOverSlf4J) + optional("org.apache.tiles:tiles-jsp:${tiles3Version}", withoutJclOverSlf4J) + optional("org.apache.tiles:tiles-el:${tiles3Version}", withoutJclOverSlf4J) optional("org.apache.tiles:tiles-extras:${tiles3Version}") { exclude group: "org.springframework", module: "spring-web" + exclude group: "org.slf4j", module: "jcl-over-slf4j" } optional("org.codehaus.groovy:groovy-all:${groovyVersion}") optional("org.jetbrains.kotlin:kotlin-reflect:${kotlinVersion}") diff --git a/spring-websocket/spring-websocket.gradle b/spring-websocket/spring-websocket.gradle index a31c4cd612..b6ce38d277 100644 --- a/spring-websocket/spring-websocket.gradle +++ b/spring-websocket/spring-websocket.gradle @@ -1,16 +1,10 @@ description = "Spring WebSocket" -apply plugin: "io.spring.dependency-management" - dependencyManagement { imports { mavenBom "io.projectreactor:reactor-bom:${reactorVersion}" mavenBom "io.netty:netty-bom:${nettyVersion}" } - resolutionStrategy { - cacheChangingModulesFor 0, 'seconds' - } - applyMavenExclusions = false } dependencies {