From c12b46fc11fa2dad78b814125ca4a8e0cbcd3cfa Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Thu, 1 Sep 2022 11:43:31 +0200 Subject: [PATCH] Replace dependency management plugin with Gradle platform support --- build.gradle | 59 ++++------------------- platform/build.gradle | 46 ++++++++++++++++++ samples/webflux-security/build.gradle | 1 + samples/webflux-websocket/build.gradle | 1 + samples/webmvc-http-security/build.gradle | 1 + samples/webmvc-http/build.gradle | 1 + settings.gradle | 3 +- 7 files changed, 62 insertions(+), 50 deletions(-) create mode 100644 platform/build.gradle diff --git a/build.gradle b/build.gradle index cb553508..363e68cc 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,4 @@ plugins { - id 'io.spring.dependency-management' version '1.0.12.RELEASE' id 'org.jetbrains.kotlin.jvm' version '1.6.21' apply false } @@ -12,8 +11,6 @@ ext { description = "Spring for GraphQL" subprojects { - apply plugin: 'io.spring.dependency-management' - group = 'org.springframework.graphql' repositories { @@ -56,53 +53,17 @@ configure(moduleProjects) { } } - dependencyManagement { - imports { - mavenBom "com.fasterxml.jackson:jackson-bom:2.13.3" - mavenBom "io.projectreactor:reactor-bom:2020.0.21" - mavenBom "org.springframework:spring-framework-bom:5.3.22" - mavenBom "org.springframework.data:spring-data-bom:2021.2.2" - mavenBom "org.springframework.security:spring-security-bom:5.7.2" - mavenBom "com.querydsl:querydsl-bom:5.0.0" - mavenBom "io.rsocket:rsocket-bom:1.1.2" - mavenBom "org.jetbrains.kotlin:kotlin-bom:1.6.21" - mavenBom "org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4" - mavenBom "org.junit:junit-bom:5.8.2" - mavenBom "org.testcontainers:testcontainers-bom:1.17.3" - } - dependencies { - dependency "com.graphql-java:graphql-java:${graphQlJavaVersion}" - dependency "javax.annotation:javax.annotation-api:1.3.2" - dependency "javax.servlet:javax.servlet-api:4.0.1" - dependency "com.google.code.findbugs:jsr305:3.0.2" - dependency "org.assertj:assertj-core:3.22.0" - dependency "com.jayway.jsonpath:json-path:2.7.0" - dependency "org.skyscreamer:jsonassert:1.5.1" - dependency "com.h2database:h2:2.1.214" - dependency "javax.validation:validation-api:2.0.1.Final" - dependency "org.hibernate:hibernate-core:5.6.10.Final" - dependency "org.hibernate.validator:hibernate-validator:6.2.3.Final" - dependencySet(group: 'org.mongodb', version: '4.6.1') { - entry 'bson' - entry 'mongodb-driver-core' - entry 'mongodb-driver-reactivestreams' - entry 'mongodb-driver-sync' - } - dependencySet(group: 'org.apache.logging.log4j', version: '2.17.2') { - entry 'log4j-api' - entry 'log4j-core' - entry 'log4j-jul' - entry 'log4j-slf4j-impl' - } - dependencySet(group: 'org.mockito', version: '4.5.1') { - entry 'mockito-core' - entry 'mockito-inline' - entry 'mockito-junit-jupiter' - } - } - generatedPomCustomization { - enabled = false + configurations { + dependencyManagement { + canBeConsumed = false + canBeResolved = false + visible = false } + matching { it.name.endsWith("Classpath") }.all { it.extendsFrom(dependencyManagement) } + } + + dependencies { + dependencyManagement(enforcedPlatform(dependencies.project(path: ":platform"))) } ext.javadocLinks = [ diff --git a/platform/build.gradle b/platform/build.gradle new file mode 100644 index 00000000..a098762f --- /dev/null +++ b/platform/build.gradle @@ -0,0 +1,46 @@ +plugins { + id 'java-platform' +} + +javaPlatform { + allowDependencies() +} + +dependencies { + api(platform("com.fasterxml.jackson:jackson-bom:2.13.3")) + api(platform("io.projectreactor:reactor-bom:2020.0.21")) + api(platform("org.springframework:spring-framework-bom:5.3.22")) + api(platform("org.springframework.data:spring-data-bom:2021.2.2")) + api(platform("org.springframework.security:spring-security-bom:5.7.2")) + api(platform("com.querydsl:querydsl-bom:5.0.0")) + api(platform("io.rsocket:rsocket-bom:1.1.2")) + api(platform("org.jetbrains.kotlin:kotlin-bom:1.6.21")) + api(platform("org.jetbrains.kotlinx:kotlinx-coroutines-bom:1.6.4")) + api(platform("org.junit:junit-bom:5.8.2")) + api(platform("org.mockito:mockito-bom:4.5.1")) + api(platform("org.testcontainers:testcontainers-bom:1.17.3")) + api(platform("org.apache.logging.log4j:log4j-bom:2.17.2")) + + constraints { + api("com.graphql-java:graphql-java:${graphQlJavaVersion}") + + api("javax.annotation:javax.annotation-api:1.3.2") + api("javax.servlet:javax.servlet-api:4.0.1") + api("javax.validation:validation-api:2.0.1.Final") + + api("com.google.code.findbugs:jsr305:3.0.2") + + api("org.assertj:assertj-core:3.22.0") + api("com.jayway.jsonpath:json-path:2.7.0") + api("org.skyscreamer:jsonassert:1.5.1") + + api("com.h2database:h2:2.1.214") + api("org.hibernate:hibernate-core:5.6.10.Final") + api("org.hibernate.validator:hibernate-validator:6.2.3.Final") + api("org.mongodb:bson:4.6.1") + api("org.mongodb:mongodb-driver-core:4.6.1") + api("org.mongodb:mongodb-driver-reactivestreams:4.6.1") + api("org.mongodb:mongodb-driver-sync:4.6.1") + } + +} diff --git a/samples/webflux-security/build.gradle b/samples/webflux-security/build.gradle index 8d3fda42..a40d2810 100644 --- a/samples/webflux-security/build.gradle +++ b/samples/webflux-security/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.springframework.boot' version "${bootVersion}" + id 'io.spring.dependency-management' version '1.0.13.RELEASE' id 'java' } group = 'com.example' diff --git a/samples/webflux-websocket/build.gradle b/samples/webflux-websocket/build.gradle index ad6de4eb..8b7b778a 100644 --- a/samples/webflux-websocket/build.gradle +++ b/samples/webflux-websocket/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.springframework.boot' version "${bootVersion}" + id 'io.spring.dependency-management' version '1.0.13.RELEASE' id 'java' } group = 'com.example' diff --git a/samples/webmvc-http-security/build.gradle b/samples/webmvc-http-security/build.gradle index fbc4641a..d496f9f8 100644 --- a/samples/webmvc-http-security/build.gradle +++ b/samples/webmvc-http-security/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.springframework.boot' version "${bootVersion}" + id 'io.spring.dependency-management' version '1.0.13.RELEASE' id 'java' } group = 'com.example' diff --git a/samples/webmvc-http/build.gradle b/samples/webmvc-http/build.gradle index e9cceb31..5194ed96 100644 --- a/samples/webmvc-http/build.gradle +++ b/samples/webmvc-http/build.gradle @@ -1,5 +1,6 @@ plugins { id 'org.springframework.boot' version "${bootVersion}" + id 'io.spring.dependency-management' version '1.0.13.RELEASE' id 'java' } group = 'com.example' diff --git a/settings.gradle b/settings.gradle index 369bf9bb..a02ad7a8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -24,7 +24,8 @@ plugins { } rootProject.name = 'spring-graphql' -include 'spring-graphql', +include 'platform', + 'spring-graphql', 'spring-graphql-test', 'spring-graphql-docs', 'samples:webmvc-http',