Apply dependency management to selected modules

This commit applies the Dependency Management Plugin to modules that
require it; right now Spring Framework is importing BOMs for Netty and
Reactor dependencies only.

Instead of applying those BOMs to all modules, they're applied only
where they're needed.

Issue: SPR-15885
This commit is contained in:
Brian Clozel 2017-08-21 14:42:03 +02:00
parent 2eeb428e95
commit cc3d7d2d48
8 changed files with 89 additions and 19 deletions

View File

@ -90,13 +90,6 @@ configure(allprojects) { project ->
configurations.all { configurations.all {
// Check for updates every build // Check for updates every build
resolutionStrategy.cacheChangingModulesFor 0, 'seconds' resolutionStrategy.cacheChangingModulesFor 0, 'seconds'
// Consistent netty version (e.g. clashes between netty-all vs netty-common)
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
if (details.requested.group == 'io.netty') {
details.useVersion nettyVersion
}
}
} }
compileJava.options*.compilerArgs = [ compileJava.options*.compilerArgs = [
@ -185,18 +178,6 @@ configure(allprojects) { project ->
configure(subprojects - project(":spring-build-src")) { subproject -> configure(subprojects - project(":spring-build-src")) { subproject ->
apply from: "${gradleScriptDir}/publish-maven.gradle" apply from: "${gradleScriptDir}/publish-maven.gradle"
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
}
configurations { configurations {
jacoco jacoco

View File

@ -1,5 +1,18 @@
description = "Spring Core" 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 // As of Spring 4.0.3, spring-core includes asm 5.x and repackages cglib 3.2, inlining
// both into the spring-core jar. cglib 3.2 itself depends on asm 5.x and is therefore // both into the spring-core jar. cglib 3.2 itself depends on asm 5.x and is therefore
// further transformed by the JarJar task to depend on org.springframework.asm; this // further transformed by the JarJar task to depend on org.springframework.asm; this

View File

@ -1,5 +1,18 @@
description = "Spring Messaging" 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 { dependencies {
compile(project(":spring-beans")) compile(project(":spring-beans"))
compile(project(":spring-core")) compile(project(":spring-core"))

View File

@ -1,5 +1,18 @@
description = "Spring TestContext Framework" 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 { dependencies {
compile(project(":spring-core")) compile(project(":spring-core"))
optional(project(":spring-aop")) optional(project(":spring-aop"))

View File

@ -1,6 +1,18 @@
description = "Spring Web" description = "Spring Web"
apply plugin: "groovy" 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 { dependencies {
compile(project(":spring-beans")) compile(project(":spring-beans"))

View File

@ -1,5 +1,18 @@
description = "Spring WebFlux" 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 { dependencies {
compile(project(":spring-beans")) compile(project(":spring-beans"))
compile(project(":spring-core")) compile(project(":spring-core"))

View File

@ -1,5 +1,17 @@
description = "Spring Web MVC" 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 { dependencies {
provided("javax.servlet:javax.servlet-api:4.0.0") provided("javax.servlet:javax.servlet-api:4.0.0")
compile(project(":spring-aop")) compile(project(":spring-aop"))

View File

@ -1,5 +1,18 @@
description = "Spring WebSocket" 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 { dependencies {
compile(project(":spring-context")) compile(project(":spring-context"))
compile(project(":spring-core")) compile(project(":spring-core"))