From b34a311d02fe60ac267493ccc7f2c6b816f3a15c Mon Sep 17 00:00:00 2001 From: Andy Wilkinson Date: Mon, 13 Jan 2020 16:48:28 +0000 Subject: [PATCH] Rework dep management to avoid consumers picking up strict constraints Previously, enforcedPlatform dependencies were using to pull in the constraints defined in spring-boot-dependencies and spring-boot-parent and applied them strictly so that the constrained version had to be used. This worked as intended in Spring Boot's own build but incorrectly enforced those same strict version requirements on external consumers of Spring Boot's modules. This commit reworks how Spring Boot defines its internal dependency management so that platform dependencies are exposed to external consumers while enforced platform dependencies are using internally. See gh-19609 --- buildSrc/build.gradle | 4 ++ .../InternalDependencyManagementPlugin.java | 60 +++++++++++++++++++ .../boot/build/bom/BomExtension.java | 2 +- .../boot/build/starters/StarterPlugin.java | 2 + .../build.gradle | 8 ++- .../spring-boot-actuator/build.gradle | 5 +- .../spring-boot-autoconfigure/build.gradle | 8 +-- .../spring-boot-cli/build.gradle | 7 +-- .../spring-boot-devtools/build.gradle | 7 ++- .../build.gradle | 4 +- .../spring-boot-starter-activemq/build.gradle | 2 +- .../spring-boot-starter-actuator/build.gradle | 2 +- .../spring-boot-starter-amqp/build.gradle | 2 +- .../spring-boot-starter-aop/build.gradle | 2 +- .../spring-boot-starter-artemis/build.gradle | 2 +- .../spring-boot-starter-batch/build.gradle | 2 +- .../spring-boot-starter-cache/build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../spring-boot-starter-data-jpa/build.gradle | 4 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../spring-boot-starter-hateoas/build.gradle | 2 +- .../build.gradle | 2 +- .../spring-boot-starter-jdbc/build.gradle | 2 +- .../spring-boot-starter-jersey/build.gradle | 2 +- .../spring-boot-starter-jetty/build.gradle | 2 +- .../spring-boot-starter-jooq/build.gradle | 2 +- .../spring-boot-starter-json/build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../spring-boot-starter-log4j2/build.gradle | 2 +- .../spring-boot-starter-logging/build.gradle | 2 +- .../spring-boot-starter-mail/build.gradle | 2 +- .../spring-boot-starter-mustache/build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../spring-boot-starter-quartz/build.gradle | 2 +- .../build.gradle | 2 +- .../spring-boot-starter-rsocket/build.gradle | 2 +- .../spring-boot-starter-security/build.gradle | 2 +- .../spring-boot-starter-test/build.gradle | 2 +- .../build.gradle | 2 +- .../spring-boot-starter-tomcat/build.gradle | 2 +- .../spring-boot-starter-undertow/build.gradle | 2 +- .../build.gradle | 2 +- .../build.gradle | 2 +- .../spring-boot-starter-web/build.gradle | 2 +- .../spring-boot-starter-webflux/build.gradle | 2 +- .../build.gradle | 2 +- .../spring-boot-starter/build.gradle | 2 +- .../build.gradle | 7 ++- .../spring-boot-test/build.gradle | 6 +- .../spring-boot-antlib/build.gradle | 4 +- .../build.gradle | 4 +- .../spring-boot-gradle-plugin/build.gradle | 7 ++- .../spring-boot-loader-tools/build.gradle | 3 +- .../spring-boot-loader/build.gradle | 5 +- .../spring-boot-maven-plugin/build.gradle | 9 +-- .../spring-boot-test-support/build.gradle | 4 +- spring-boot-project/spring-boot/build.gradle | 9 +-- .../spring-boot-smoke-test-ant/build.gradle | 2 +- .../build.gradle | 1 + .../build.gradle | 10 ++-- .../spring-boot-smoke-test-war/build.gradle | 6 +- 78 files changed, 190 insertions(+), 104 deletions(-) create mode 100644 buildSrc/src/main/java/org/springframework/boot/build/InternalDependencyManagementPlugin.java diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index b0587d4d33..aa97330716 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -52,6 +52,10 @@ gradlePlugin { id = "org.springframework.boot.conventions" implementationClass = "org.springframework.boot.build.ConventionsPlugin" } + dependencyManagementPlugin { + id = "org.springframework.boot.internal-dependency-management" + implementationClass = "org.springframework.boot.build.InternalDependencyManagementPlugin" + } deployedPlugin { id = "org.springframework.boot.deployed" implementationClass = "org.springframework.boot.build.DeployedPlugin" diff --git a/buildSrc/src/main/java/org/springframework/boot/build/InternalDependencyManagementPlugin.java b/buildSrc/src/main/java/org/springframework/boot/build/InternalDependencyManagementPlugin.java new file mode 100644 index 0000000000..8a2a0364f3 --- /dev/null +++ b/buildSrc/src/main/java/org/springframework/boot/build/InternalDependencyManagementPlugin.java @@ -0,0 +1,60 @@ +/* + * Copyright 2020 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.springframework.boot.build; + +import java.util.Collections; + +import org.gradle.api.Plugin; +import org.gradle.api.Project; +import org.gradle.api.artifacts.Configuration; +import org.gradle.api.artifacts.ConfigurationContainer; +import org.gradle.api.artifacts.Dependency; +import org.gradle.api.plugins.JavaBasePlugin; + +import org.springframework.boot.build.optional.OptionalDependenciesPlugin; + +/** + * Plugin to apply internal dependency management to Spring Boot's projects. Uses a custom + * configuration to enforce a platform for Spring Boot's own build. This prevents the + * enforced (strict) constraints from being visible to external consumers. + * + * @author Andy Wilkinson + */ +public class InternalDependencyManagementPlugin implements Plugin { + + @Override + public void apply(Project project) { + project.getPlugins().withType(JavaBasePlugin.class, (java) -> configureDependencyManagement(project)); + } + + private void configureDependencyManagement(Project project) { + ConfigurationContainer configurations = project.getConfigurations(); + Configuration dependencyManagement = configurations.create("internalDependencyManagement", (configuration) -> { + configuration.setVisible(false); + configuration.setCanBeConsumed(false); + configuration.setCanBeResolved(false); + }); + configurations.matching((configuration) -> configuration.getName().endsWith("Classpath")) + .all((configuration) -> configuration.extendsFrom(dependencyManagement)); + Dependency springBootParent = project.getDependencies().enforcedPlatform(project.getDependencies() + .project(Collections.singletonMap("path", ":spring-boot-project:spring-boot-parent"))); + dependencyManagement.getDependencies().add(springBootParent); + project.getPlugins().withType(OptionalDependenciesPlugin.class, (optionalDependencies) -> configurations + .getByName(OptionalDependenciesPlugin.OPTIONAL_CONFIGURATION_NAME).extendsFrom(dependencyManagement)); + } + +} diff --git a/buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java b/buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java index e524749a0d..c46468e725 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/bom/BomExtension.java @@ -113,7 +113,7 @@ public class BomExtension { for (String bomImport : group.getBoms()) { this.putArtifactVersionProperty(group.getId(), bomImport, library.getVersionProperty()); this.dependencyHandler.add("api", this.dependencyHandler - .enforcedPlatform(createDependencyNotation(group.getId(), bomImport, library.getVersion()))); + .platform(createDependencyNotation(group.getId(), bomImport, library.getVersion()))); } } } diff --git a/buildSrc/src/main/java/org/springframework/boot/build/starters/StarterPlugin.java b/buildSrc/src/main/java/org/springframework/boot/build/starters/StarterPlugin.java index 3ad6a3f714..02827148f5 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/starters/StarterPlugin.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/starters/StarterPlugin.java @@ -29,6 +29,7 @@ import org.gradle.api.plugins.PluginContainer; import org.springframework.boot.build.ConventionsPlugin; import org.springframework.boot.build.DeployedPlugin; +import org.springframework.boot.build.InternalDependencyManagementPlugin; import org.springframework.boot.build.classpath.CheckClasspathForConflicts; import org.springframework.boot.build.classpath.CheckClasspathForProhibitedDependencies; import org.springframework.util.StringUtils; @@ -46,6 +47,7 @@ public class StarterPlugin implements Plugin { plugins.apply(DeployedPlugin.class); plugins.apply(JavaLibraryPlugin.class); plugins.apply(ConventionsPlugin.class); + plugins.apply(InternalDependencyManagementPlugin.class); StarterMetadata starterMetadata = project.getTasks().create("starterMetadata", StarterMetadata.class); ConfigurationContainer configurations = project.getConfigurations(); Configuration runtimeClasspath = configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME); diff --git a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle index 7774ca099b..f00d16f8a7 100644 --- a/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle @@ -5,6 +5,7 @@ plugins { id 'org.springframework.boot.auto-configuration' id 'org.springframework.boot.conventions' id 'org.springframework.boot.deployed' + id 'org.springframework.boot.internal-dependency-management' id 'org.springframework.boot.optional-dependencies' } @@ -16,12 +17,13 @@ configurations { } dependencies { - asciidoctorExtensions enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + asciidoctorExtensions platform(project(':spring-boot-project:spring-boot-dependencies')) asciidoctorExtensions 'org.springframework.restdocs:spring-restdocs-asciidoctor' + api platform(project(':spring-boot-project:spring-boot-dependencies')) + api project(':spring-boot-project:spring-boot-actuator') - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) implementation project(':spring-boot-project:spring-boot') implementation project(':spring-boot-project:spring-boot-autoconfigure') implementation 'com.fasterxml.jackson.core:jackson-databind' @@ -29,7 +31,7 @@ dependencies { implementation 'org.springframework:spring-core' implementation 'org.springframework:spring-context' - optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + optional platform(project(':spring-boot-project:spring-boot-dependencies')) optional 'ch.qos.logback:logback-classic' optional 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml' optional 'com.github.ben-manes.caffeine:caffeine' diff --git a/spring-boot-project/spring-boot-actuator/build.gradle b/spring-boot-project/spring-boot-actuator/build.gradle index 73dddb1880..42908ab8a4 100644 --- a/spring-boot-project/spring-boot-actuator/build.gradle +++ b/spring-boot-project/spring-boot-actuator/build.gradle @@ -9,10 +9,11 @@ plugins { description = 'Spring Boot Actuator' dependencies { - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) + implementation project(':spring-boot-project:spring-boot') - optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + optional platform(project(':spring-boot-project:spring-boot-dependencies')) optional 'com.fasterxml.jackson.core:jackson-databind' optional 'com.hazelcast:hazelcast' optional 'com.hazelcast:hazelcast-spring' diff --git a/spring-boot-project/spring-boot-autoconfigure/build.gradle b/spring-boot-project/spring-boot-autoconfigure/build.gradle index 49ae79fae7..7f653ebde6 100644 --- a/spring-boot-project/spring-boot-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-autoconfigure/build.gradle @@ -4,6 +4,7 @@ plugins { id 'org.springframework.boot.auto-configuration' id 'org.springframework.boot.conventions' id 'org.springframework.boot.deployed' + id 'org.springframework.boot.internal-dependency-management' id 'org.springframework.boot.optional-dependencies' } @@ -11,10 +12,9 @@ description = 'Spring Boot AutoConfigure' dependencies { api project(':spring-boot-project:spring-boot') + api platform(project(':spring-boot-project:spring-boot-dependencies')) - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) - - optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + optional platform(project(':spring-boot-project:spring-boot-dependencies')) optional 'com.atomikos:transactions-jdbc' optional 'com.atomikos:transactions-jta' optional 'com.couchbase.client:couchbase-spring-cache' @@ -149,7 +149,7 @@ dependencies { optional 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' optional 'redis.clients:jedis' - testImplementation enforcedPlatform(project(':spring-boot-project:spring-boot-parent')) + testImplementation platform(project(':spring-boot-project:spring-boot-parent')) testImplementation project(':spring-boot-project:spring-boot-tools:spring-boot-test-support') testImplementation project(':spring-boot-project:spring-boot-test') testImplementation 'ch.qos.logback:logback-classic' diff --git a/spring-boot-project/spring-boot-cli/build.gradle b/spring-boot-project/spring-boot-cli/build.gradle index db7ee46c8d..96171cb6e7 100644 --- a/spring-boot-project/spring-boot-cli/build.gradle +++ b/spring-boot-project/spring-boot-cli/build.gradle @@ -3,6 +3,7 @@ plugins { id 'org.springframework.boot.deployed' id 'org.springframework.boot.conventions' id 'org.springframework.boot.integration-test' + id 'org.springframework.boot.internal-dependency-management' } description = "Spring Boot CLI" @@ -15,16 +16,14 @@ configurations { dependencies { compileOnly project(':spring-boot-project:spring-boot') - compileOnly 'jakarta.servlet:jakarta.servlet-api' compileOnly 'org.codehaus.groovy:groovy-templates' compileOnly 'org.springframework:spring-web' dependenciesBom project(path: ':spring-boot-project:spring-boot-dependencies', configuration: 'effectiveBom') - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-parent')) + implementation platform(project(':spring-boot-project:spring-boot-parent')) implementation project(':spring-boot-project:spring-boot-tools:spring-boot-loader-tools') - implementation 'com.vaadin.external.google:android-json' implementation 'jline:jline' implementation 'net.sf.jopt-simple:jopt-simple' @@ -51,7 +50,7 @@ dependencies { implementation 'org.springframework:spring-core' implementation 'org.springframework.security:spring-security-crypto' - intTestImplementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + intTestImplementation platform(project(':spring-boot-project:spring-boot-dependencies')) intTestImplementation project(':spring-boot-project:spring-boot-tools:spring-boot-loader-tools') intTestImplementation project(':spring-boot-project:spring-boot-tools:spring-boot-test-support') intTestImplementation 'org.assertj:assertj-core' diff --git a/spring-boot-project/spring-boot-devtools/build.gradle b/spring-boot-project/spring-boot-devtools/build.gradle index 4120f22aea..0e050cf718 100644 --- a/spring-boot-project/spring-boot-devtools/build.gradle +++ b/spring-boot-project/spring-boot-devtools/build.gradle @@ -4,6 +4,7 @@ plugins { id 'org.springframework.boot.conventions' id 'org.springframework.boot.deployed' id 'org.springframework.boot.integration-test' + id 'org.springframework.boot.internal-dependency-management' id 'org.springframework.boot.optional-dependencies' } @@ -14,13 +15,13 @@ configurations { } dependencies { - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) + implementation project(':spring-boot-project:spring-boot') implementation project(':spring-boot-project:spring-boot-autoconfigure') intTestDependencies project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web') - intTestImplementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) intTestImplementation project(':spring-boot-project:spring-boot-autoconfigure') intTestImplementation project(':spring-boot-project:spring-boot-test') intTestImplementation project(':spring-boot-project:spring-boot-tools:spring-boot-test-support') @@ -31,7 +32,7 @@ dependencies { intTestImplementation 'net.bytebuddy:byte-buddy' intTestRuntimeOnly 'org.springframework:spring-web' - optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + optional platform(project(':spring-boot-project:spring-boot-dependencies')) optional 'javax.servlet:javax.servlet-api' optional 'org.apache.derby:derby' optional 'org.hibernate:hibernate-core' diff --git a/spring-boot-project/spring-boot-properties-migrator/build.gradle b/spring-boot-project/spring-boot-properties-migrator/build.gradle index 5ef68ecb10..e61a4fd00f 100644 --- a/spring-boot-project/spring-boot-properties-migrator/build.gradle +++ b/spring-boot-project/spring-boot-properties-migrator/build.gradle @@ -2,12 +2,14 @@ plugins { id 'java-library' id 'maven-publish' id 'org.springframework.boot.conventions' + id 'org.springframework.boot.internal-dependency-management' } description = 'Spring Boot Properties Migrator' dependencies { - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) + implementation project(':spring-boot-project:spring-boot') implementation project(':spring-boot-project:spring-boot-tools:spring-boot-configuration-metadata') diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-activemq/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-activemq/build.gradle index aac1103f14..cb3c9e76ab 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-activemq/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-activemq/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for JMS messaging using Apache ActiveMQ" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework:spring-jms' api ('org.apache.activemq:activemq-broker') { diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-actuator/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-actuator/build.gradle index 96a273b712..a147984f27 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-actuator/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-actuator/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Boot's Actuator which provides production ready features to help you monitor and manage your application" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api project(':spring-boot-project:spring-boot-actuator-autoconfigure') api 'io.micrometer:micrometer-core' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-amqp/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-amqp/build.gradle index 83197a3b18..83b2f1bb3e 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-amqp/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-amqp/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring AMQP and Rabbit MQ" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework:spring-messaging' api 'org.springframework.amqp:spring-rabbit' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-aop/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-aop/build.gradle index c5959cadb6..6f06ffd033 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-aop/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-aop/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for aspect-oriented programming with Spring AOP and AspectJ" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework:spring-aop' api 'org.aspectj:aspectjweaver' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-artemis/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-artemis/build.gradle index 033a409c93..bfa91fe26e 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-artemis/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-artemis/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for JMS messaging using Apache Artemis" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'jakarta.jms:jakarta.jms-api' api 'jakarta.json:jakarta.json-api' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-batch/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-batch/build.gradle index 36eeadbba9..af10e29eaf 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-batch/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-batch/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Batch" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc') api 'org.springframework.batch:spring-batch-core' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-cache/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-cache/build.gradle index 14614a195d..3e18eba14e 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-cache/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-cache/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Framework's caching support" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework:spring-context-support' } diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-cloud-connectors/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-cloud-connectors/build.gradle index 50400b1566..e27fbb12ba 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-cloud-connectors/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-cloud-connectors/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Cloud Connectors which simplifies connecting to services in cloud platforms like Cloud Foundry and Heroku" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework.cloud:spring-cloud-spring-service-connector' api 'org.springframework.cloud:spring-cloud-cloudfoundry-connector' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-cassandra-reactive/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-cassandra-reactive/build.gradle index 0f870c33e6..42c26d83b5 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-cassandra-reactive/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-cassandra-reactive/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Cassandra distributed database and Spring Data Cassandra Reactive" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework:spring-tx' api 'org.springframework.data:spring-data-cassandra' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-cassandra/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-cassandra/build.gradle index 06219aed30..ac5bba1c6f 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-cassandra/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-cassandra/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Cassandra distributed database and Spring Data Cassandra" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework:spring-tx' api 'org.springframework.data:spring-data-cassandra' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase-reactive/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase-reactive/build.gradle index b2969f80c3..674ad03c5a 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase-reactive/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase-reactive/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Couchbase document-oriented database and Spring Data Couchbase Reactive" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'io.projectreactor:reactor-core' api 'io.reactivex:rxjava-reactive-streams' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase/build.gradle index b551d58880..0eadf133c6 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-couchbase/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Couchbase document-oriented database and Spring Data Couchbase" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api ('org.springframework.data:spring-data-couchbase') { exclude group: 'com.couchbase.client', module: 'encryption' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-elasticsearch/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-elasticsearch/build.gradle index af84a57e05..c49b8031dc 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-elasticsearch/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-elasticsearch/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Elasticsearch search and analytics engine and Spring Data Elasticsearch" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api ('org.springframework.data:spring-data-elasticsearch') { exclude group: 'org.elasticsearch.client', module: 'transport' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-jdbc/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-jdbc/build.gradle index 010e9a905e..1d75f3d821 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-jdbc/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-jdbc/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Data JDBC" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc') api 'org.springframework.data:spring-data-jdbc' } diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-jpa/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-jpa/build.gradle index 0b74593c60..7e244fdc60 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-jpa/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-jpa/build.gradle @@ -5,12 +5,12 @@ plugins { description = "Starter for using Spring Data JPA with Hibernate" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-aop') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc') api 'jakarta.transaction:jakarta.transaction-api' api 'jakarta.persistence:jakarta.persistence-api' - api ('org.hibernate:hibernate-core') { + api ('org.hibernate:hibernate-core') { exclude group: 'javax.activation', module: 'javax.activation-api' exclude group: 'javax.persistence', module: 'javax.persistence-api' exclude group: 'javax.xml.bind', module: 'jaxb-api' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-ldap/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-ldap/build.gradle index 397e51d579..e6813b77c1 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-ldap/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-ldap/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Data LDAP" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework.data:spring-data-ldap' } diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-mongodb-reactive/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-mongodb-reactive/build.gradle index e32f7f97a3..5c097ef19c 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-mongodb-reactive/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-mongodb-reactive/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using MongoDB document-oriented database and Spring Data MongoDB Reactive" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'io.projectreactor:reactor-core' api 'org.mongodb:mongodb-driver' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-mongodb/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-mongodb/build.gradle index b6b001fc84..f869e0d5b7 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-mongodb/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-mongodb/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using MongoDB document-oriented database and Spring Data MongoDB" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.mongodb:mongodb-driver' api ('org.springframework.data:spring-data-mongodb') { diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-neo4j/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-neo4j/build.gradle index b4fabd9c66..1d24c7f5a8 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-neo4j/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-neo4j/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Neo4j graph database and Spring Data Neo4j" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework.data:spring-data-neo4j' } diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-redis-reactive/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-redis-reactive/build.gradle index 6c1219bd4d..87cdf3ae6d 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-redis-reactive/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-redis-reactive/build.gradle @@ -5,6 +5,6 @@ plugins { description = "Starter for using Redis key-value data store with Spring Data Redis reactive and the Lettuce client" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-data-redis') } diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-redis/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-redis/build.gradle index 34dd4d4a10..f86d6e0f63 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-redis/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-redis/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Redis key-value data store with Spring Data Redis and the Lettuce client" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework.data:spring-data-redis' api 'io.lettuce:lettuce-core' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-rest/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-rest/build.gradle index 6258a7bb8d..6d74bd03a4 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-rest/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-rest/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for exposing Spring Data repositories over REST using Spring Data REST" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web') api 'org.springframework.data:spring-data-rest-webmvc' } diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-solr/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-solr/build.gradle index 287a62e3b6..e9b2c4baa2 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-data-solr/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-data-solr/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using the Apache Solr search platform with Spring Data Solr" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api ('org.apache.solr:solr-solrj') { exclude group: 'org.slf4j', module: 'jcl-over-slf4j' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-freemarker/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-freemarker/build.gradle index e6151b55d3..d3663b2f55 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-freemarker/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-freemarker/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for building MVC web applications using FreeMarker views" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.freemarker:freemarker' api 'org.springframework:spring-context-support' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-groovy-templates/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-groovy-templates/build.gradle index 640b44e5f6..be0b2eb313 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-groovy-templates/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-groovy-templates/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for building MVC web applications using Groovy Templates views" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web') api 'org.codehaus.groovy:groovy-templates' } diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-hateoas/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-hateoas/build.gradle index ca4129e0f0..b123fb1270 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-hateoas/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-hateoas/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web') api 'org.springframework.hateoas:spring-hateoas' api 'org.springframework.plugin:spring-plugin-core' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-integration/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-integration/build.gradle index 7141809230..a3ec59a491 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-integration/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-integration/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Integration" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-aop') api 'org.springframework.integration:spring-integration-core' } diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-jdbc/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-jdbc/build.gradle index 71132155c6..15ed9b0be1 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-jdbc/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-jdbc/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using JDBC with the HikariCP connection pool" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'com.zaxxer:HikariCP' api 'org.springframework:spring-jdbc' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-jersey/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-jersey/build.gradle index dc8b36a02e..8c461f806f 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-jersey/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-jersey/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for building RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-json') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-tomcat') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-validation') diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-jetty/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-jetty/build.gradle index 976326c771..7baa5c6fd0 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-jetty/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-jetty/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Jetty as the embedded servlet container. An alternative to spring-boot-starter-tomcat" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api 'jakarta.servlet:jakarta.servlet-api' api 'jakarta.websocket:jakarta.websocket-api' api 'org.eclipse.jetty:jetty-servlets' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-jooq/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-jooq/build.gradle index 244f4391f7..178904f69d 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-jooq/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-jooq/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using jOOQ to access SQL databases. An alternative to spring-boot-starter-data-jpa or spring-boot-starter-jdbc" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc') api 'jakarta.activation:jakarta.activation-api' api 'jakarta.xml.bind:jakarta.xml.bind-api' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-json/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-json/build.gradle index 3d2633702b..96d7238b4c 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-json/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-json/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for reading and writing json" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework:spring-web' api 'com.fasterxml.jackson.core:jackson-databind' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-jta-atomikos/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-jta-atomikos/build.gradle index 9dbb582216..6459c514d3 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-jta-atomikos/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-jta-atomikos/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for JTA transactions using Atomikos" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'com.atomikos:transactions-jms' api 'com.atomikos:transactions-jta' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-jta-bitronix/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-jta-bitronix/build.gradle index 8196709090..56ed7fda49 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-jta-bitronix/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-jta-bitronix/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for JTA transactions using Bitronix" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'jakarta.jms:jakarta.jms-api' api 'jakarta.transaction:jakarta.transaction-api' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-log4j2/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-log4j2/build.gradle index 5490015749..5a3e25390d 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-log4j2/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-log4j2/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Log4j2 for logging. An alternative to spring-boot-starter-logging" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api 'org.apache.logging.log4j:log4j-slf4j-impl' api 'org.apache.logging.log4j:log4j-core' api 'org.apache.logging.log4j:log4j-jul' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-logging/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-logging/build.gradle index a38b29fd62..b867aa5ea3 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-logging/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-logging/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for logging using Logback. Default logging starter" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api 'ch.qos.logback:logback-classic' api 'org.apache.logging.log4j:log4j-to-slf4j' api 'org.slf4j:jul-to-slf4j' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-mail/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-mail/build.gradle index 641440d7be..e7ba82bbf9 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-mail/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-mail/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Java Mail and Spring Framework's email sending support" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework:spring-context-support' api 'com.sun.mail:jakarta.mail' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-mustache/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-mustache/build.gradle index 83a4f7c7ed..0ee7b88e40 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-mustache/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-mustache/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for building web applications using Mustache views" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'com.samskivert:jmustache' } diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-oauth2-client/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-oauth2-client/build.gradle index d31b8573ae..ce191a8a2f 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-oauth2-client/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-oauth2-client/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Security's OAuth2/OpenID Connect client features" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'com.sun.mail:jakarta.mail' api 'org.springframework.security:spring-security-config' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-oauth2-resource-server/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-oauth2-resource-server/build.gradle index 39685e87b0..44c8f1bade 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-oauth2-resource-server/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-oauth2-resource-server/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Security's OAuth2 resource server features" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework.security:spring-security-config' api 'org.springframework.security:spring-security-core' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-quartz/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-quartz/build.gradle index c00a3a0166..b8e4474232 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-quartz/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-quartz/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using the Quartz scheduler" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework:spring-context-support' api 'org.springframework:spring-tx' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-reactor-netty/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-reactor-netty/build.gradle index b3c8171ac4..6dec5f156d 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-reactor-netty/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-reactor-netty/build.gradle @@ -5,6 +5,6 @@ plugins { description = "Starter for using Reactor Netty as the embedded reactive HTTP server." dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api 'io.projectreactor.netty:reactor-netty' } diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-rsocket/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-rsocket/build.gradle index abc5ee6b57..6df2636c35 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-rsocket/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-rsocket/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for building RSocket clients and servers" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-json') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-reactor-netty') diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-security/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-security/build.gradle index 598adca065..63d46c83b8 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-security/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-security/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Security" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.springframework:spring-aop' api 'org.springframework.security:spring-security-config' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-test/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-test/build.gradle index 8812987674..a102eef68e 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-test/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-test/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for testing Spring Boot applications with libraries including JUnit, Hamcrest and Mockito" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api project(':spring-boot-project:spring-boot-test') diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-thymeleaf/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-thymeleaf/build.gradle index eefd35fbf1..8cea851552 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-thymeleaf/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-thymeleaf/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for building MVC web applications using Thymeleaf views" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.thymeleaf:thymeleaf-spring5' api 'org.thymeleaf.extras:thymeleaf-extras-java8time' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-tomcat/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-tomcat/build.gradle index ff03ce46a6..51a84b383d 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-tomcat/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-tomcat/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api 'jakarta.annotation:jakarta.annotation-api' api ('org.apache.tomcat.embed:tomcat-embed-core') { exclude group: 'org.apache.tomcat', module: 'tomcat-annotations-api' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-undertow/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-undertow/build.gradle index 9c0f4b05b7..2271006d2f 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-undertow/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-undertow/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Undertow as the embedded servlet container. An alternative to spring-boot-starter-tomcat" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api 'io.undertow:undertow-core' api ('io.undertow:undertow-servlet') { exclude group: 'org.jboss.spec.javax.annotation', module: 'jboss-annotations-api_1.2_spec' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-validation/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-validation/build.gradle index 1527c82a38..71c910cad3 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-validation/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-validation/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Java Bean Validation with Hibernate Validator" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api 'org.glassfish:jakarta.el' api 'org.hibernate.validator:hibernate-validator' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-web-services/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-web-services/build.gradle index 5cf4d06251..eeb306cca3 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-web-services/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-web-services/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for using Spring Web Services" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web') api 'com.sun.xml.messaging.saaj:saaj-impl' api 'jakarta.xml.ws:jakarta.xml.ws-api' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-web/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-web/build.gradle index 5b238f9a72..8af92e4901 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-web/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-web/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-json') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-tomcat') diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-webflux/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-webflux/build.gradle index 0e3353df0a..7a15a4caad 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-webflux/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-webflux/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for building WebFlux applications using Spring Framework's Reactive Web support" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-json') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-reactor-netty') diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter-websocket/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter-websocket/build.gradle index 5b78056e50..fd18416bfd 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter-websocket/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter-websocket/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Starter for building WebSocket applications using Spring Framework's WebSocket support" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web') api 'org.springframework:spring-messaging' api 'org.springframework:spring-websocket' diff --git a/spring-boot-project/spring-boot-starters/spring-boot-starter/build.gradle b/spring-boot-project/spring-boot-starters/spring-boot-starter/build.gradle index 5629d533d5..da2623962b 100644 --- a/spring-boot-project/spring-boot-starters/spring-boot-starter/build.gradle +++ b/spring-boot-project/spring-boot-starters/spring-boot-starter/build.gradle @@ -5,7 +5,7 @@ plugins { description = "Core starter, including auto-configuration support, logging and YAML" dependencies { - api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) api project(':spring-boot-project:spring-boot') api project(':spring-boot-project:spring-boot-autoconfigure') diff --git a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle index e6e7364e86..278d1739b5 100644 --- a/spring-boot-project/spring-boot-test-autoconfigure/build.gradle +++ b/spring-boot-project/spring-boot-test-autoconfigure/build.gradle @@ -2,18 +2,20 @@ plugins { id 'java-library' id 'org.springframework.boot.conventions' id 'org.springframework.boot.deployed' + id 'org.springframework.boot.internal-dependency-management' id 'org.springframework.boot.optional-dependencies' } description = 'Spring Boot Test AutoConfigure' dependencies { - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) + implementation project(':spring-boot-project:spring-boot') implementation project(':spring-boot-project:spring-boot-test') implementation project(':spring-boot-project:spring-boot-autoconfigure') - optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + optional platform(project(':spring-boot-project:spring-boot-dependencies')) optional 'javax.json.bind:javax.json.bind-api' optional 'javax.servlet:javax.servlet-api' optional 'javax.transaction:javax.transaction-api' @@ -46,7 +48,6 @@ dependencies { optional 'org.mongodb:mongodb-driver-async' optional 'org.mongodb:mongodb-driver-reactivestreams' - testImplementation enforcedPlatform(project(':spring-boot-project:spring-boot-parent')) testImplementation project(':spring-boot-project:spring-boot-tools:spring-boot-test-support') testImplementation 'ch.qos.logback:logback-classic' testImplementation 'com.fasterxml.jackson.module:jackson-module-parameter-names' diff --git a/spring-boot-project/spring-boot-test/build.gradle b/spring-boot-project/spring-boot-test/build.gradle index f8033155f1..6fb022cc2c 100644 --- a/spring-boot-project/spring-boot-test/build.gradle +++ b/spring-boot-project/spring-boot-test/build.gradle @@ -3,16 +3,17 @@ plugins { id 'org.jetbrains.kotlin.jvm' id 'org.springframework.boot.conventions' id 'org.springframework.boot.deployed' + id 'org.springframework.boot.internal-dependency-management' id 'org.springframework.boot.optional-dependencies' } description = 'Spring Boot Test' dependencies { - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + api platform(project(':spring-boot-project:spring-boot-dependencies')) implementation project(':spring-boot-project:spring-boot') - optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + optional platform(project(':spring-boot-project:spring-boot-dependencies')) optional 'com.fasterxml.jackson.core:jackson-databind' optional 'com.google.code.gson:gson' optional 'com.jayway.jsonpath:json-path' @@ -36,7 +37,6 @@ dependencies { optional 'org.springframework:spring-webflux' optional 'net.sourceforge.htmlunit:htmlunit' - testImplementation enforcedPlatform(project(':spring-boot-project:spring-boot-parent')) testImplementation project(':spring-boot-project:spring-boot-tools:spring-boot-test-support') testImplementation 'io.mockk:mockk' testImplementation 'javax.json:javax.json-api' diff --git a/spring-boot-project/spring-boot-tools/spring-boot-antlib/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-antlib/build.gradle index db29b70576..95654fc3af 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-antlib/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-antlib/build.gradle @@ -2,6 +2,7 @@ plugins { id 'java-library' id 'org.springframework.boot.conventions' id 'org.springframework.boot.deployed' + id 'org.springframework.boot.internal-dependency-management' } description = 'Spring Boot Antlib' @@ -19,10 +20,11 @@ dependencies { antUnit "org.apache.ant:ant-antunit:1.3" antIvy "org.apache.ivy:ivy:2.4.0" + api platform(project(":spring-boot-project:spring-boot-dependencies")) + compileOnly project(":spring-boot-project:spring-boot-tools:spring-boot-loader") compileOnly "org.apache.ant:ant:${antVersion}" - implementation enforcedPlatform(project(":spring-boot-project:spring-boot-dependencies")) implementation project(":spring-boot-project:spring-boot-tools:spring-boot-loader-tools") implementation "org.springframework:spring-core" } diff --git a/spring-boot-project/spring-boot-tools/spring-boot-configuration-metadata/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-configuration-metadata/build.gradle index 6e651c7df6..03f18a0b59 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-configuration-metadata/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-configuration-metadata/build.gradle @@ -2,12 +2,14 @@ plugins { id 'java-library' id 'maven-publish' id 'org.springframework.boot.conventions' + id 'org.springframework.boot.internal-dependency-management' } description = 'Spring Boot Configuration Metadata' dependencies { - implementation enforcedPlatform(project(path: ":spring-boot-project:spring-boot-parent")) + api platform(project(path: ":spring-boot-project:spring-boot-parent")) + implementation "com.vaadin.external.google:android-json" testImplementation "org.junit.jupiter:junit-jupiter" diff --git a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle index 4bb5844f67..961e911706 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle @@ -4,6 +4,7 @@ plugins { id 'org.asciidoctor.jvm.convert' id 'org.asciidoctor.jvm.pdf' id 'org.springframework.boot.conventions' + id 'org.springframework.boot.internal-dependency-management' id 'org.springframework.boot.maven-repository' id 'org.springframework.boot.optional-dependencies' } @@ -25,14 +26,16 @@ repositories { } dependencies { + api platform(project(':spring-boot-project:spring-boot-dependencies')) + asciidoctorExtensions 'io.spring.asciidoctor:spring-asciidoctor-extensions-block-switch:0.3.0.RELEASE' - implementation platform(project(':spring-boot-project:spring-boot-dependencies')) + implementation project(':spring-boot-project:spring-boot-tools:spring-boot-loader-tools') implementation 'io.spring.gradle:dependency-management-plugin' implementation 'org.apache.commons:commons-compress' implementation 'org.springframework:spring-core' - optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + optional platform(project(':spring-boot-project:spring-boot-dependencies')) optional 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50' testImplementation 'org.junit.jupiter:junit-jupiter' diff --git a/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/build.gradle index 161f106bb2..177fab00f4 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-loader-tools/build.gradle @@ -2,6 +2,7 @@ plugins { id 'java-library' id 'org.springframework.boot.conventions' id 'org.springframework.boot.deployed' + id 'org.springframework.boot.internal-dependency-management' } description = 'Spring Boot Loader Tools' @@ -13,11 +14,11 @@ configurations { } dependencies { + api platform(project(':spring-boot-project:spring-boot-dependencies')) api "org.apache.commons:commons-compress:1.19" compileOnly "ch.qos.logback:logback-classic" - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) implementation "org.springframework:spring-core" loader project(":spring-boot-project:spring-boot-tools:spring-boot-loader") diff --git a/spring-boot-project/spring-boot-tools/spring-boot-loader/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-loader/build.gradle index b80575d23b..d96c1779d8 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-loader/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-loader/build.gradle @@ -2,14 +2,15 @@ plugins { id 'java-library' id 'org.springframework.boot.conventions' id 'org.springframework.boot.deployed' + id 'org.springframework.boot.internal-dependency-management' } description = 'Spring Boot Loader' dependencies { - compileOnly "org.springframework:spring-core" + api platform(project(":spring-boot-project:spring-boot-dependencies")) - implementation enforcedPlatform(project(":spring-boot-project:spring-boot-dependencies")) + compileOnly "org.springframework:spring-core" testImplementation project(":spring-boot-project:spring-boot-tools:spring-boot-test-support") diff --git a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle index aa76c5c447..e981387746 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-maven-plugin/build.gradle @@ -2,6 +2,7 @@ plugins { id 'org.asciidoctor.jvm.convert' id 'org.asciidoctor.jvm.pdf' id 'org.springframework.boot.conventions' + id 'org.springframework.boot.internal-dependency-management' id 'org.springframework.boot.maven-plugin' id 'org.springframework.boot.optional-dependencies' } @@ -13,25 +14,25 @@ configurations { } dependencies { + api platform(project(':spring-boot-project:spring-boot-parent')) + compileOnly 'org.apache.maven.plugin-tools:maven-plugin-annotations' compileOnly 'org.sonatype.plexus:plexus-build-api' - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-parent')) implementation project(':spring-boot-project:spring-boot-tools:spring-boot-loader-tools') implementation 'org.apache.maven.shared:maven-common-artifact-filters' implementation 'org.apache.maven:maven-plugin-api' - intTestImplementation enforcedPlatform(project(':spring-boot-project:spring-boot-parent')) + intTestImplementation platform(project(':spring-boot-project:spring-boot-parent')) intTestImplementation 'org.apache.maven.shared:maven-invoker' intTestImplementation 'org.assertj:assertj-core' intTestImplementation 'org.junit.jupiter:junit-jupiter' - optional enforcedPlatform(project(':spring-boot-project:spring-boot-parent')) + optional platform(project(':spring-boot-project:spring-boot-parent')) optional 'org.apache.maven.plugins:maven-shade-plugin' runtimeOnly 'org.sonatype.plexus:plexus-build-api' - testImplementation enforcedPlatform(project(':spring-boot-project:spring-boot-parent')) testImplementation 'org.assertj:assertj-core' testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.mockito:mockito-core' diff --git a/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle b/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle index e5ea8d2ffd..1c089b2b21 100644 --- a/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle +++ b/spring-boot-project/spring-boot-tools/spring-boot-test-support/build.gradle @@ -1,11 +1,14 @@ plugins { id 'java-library' id 'org.springframework.boot.conventions' + id 'org.springframework.boot.internal-dependency-management' } description = 'Spring Boot Testing Support' dependencies { + api platform(project(path: ":spring-boot-project:spring-boot-parent")) + compileOnly "com.datastax.oss:java-driver-core" compileOnly "javax.servlet:javax.servlet-api" compileOnly "junit:junit" @@ -17,7 +20,6 @@ dependencies { compileOnly "org.springframework.data:spring-data-redis" compileOnly "org.testcontainers:testcontainers" - implementation enforcedPlatform(project(path: ":spring-boot-project:spring-boot-parent")) implementation "org.apache.maven.resolver:maven-resolver-connector-basic" implementation "org.apache.maven.resolver:maven-resolver-impl" implementation "org.apache.maven:maven-resolver-provider" diff --git a/spring-boot-project/spring-boot/build.gradle b/spring-boot-project/spring-boot/build.gradle index 60a897770f..0323feae43 100644 --- a/spring-boot-project/spring-boot/build.gradle +++ b/spring-boot-project/spring-boot/build.gradle @@ -4,21 +4,22 @@ plugins { id 'org.springframework.boot.conventions' id 'org.springframework.boot.configuration-properties' id 'org.springframework.boot.deployed' + id 'org.springframework.boot.internal-dependency-management' id 'org.springframework.boot.optional-dependencies' } description = 'Spring Boot' dependencies { - annotationProcessor enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + annotationProcessor platform(project(':spring-boot-project:spring-boot-dependencies')) annotationProcessor 'org.apache.logging.log4j:log4j-core' + api platform(project(':spring-boot-project:spring-boot-dependencies')) + api 'org.springframework:spring-core' api 'org.springframework:spring-context' - implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) - - optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + optional platform(project(':spring-boot-project:spring-boot-dependencies')) optional 'ch.qos.logback:logback-classic' optional 'com.atomikos:transactions-jdbc' optional 'com.atomikos:transactions-jms' diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-ant/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-ant/build.gradle index 9b26aae89d..8e7b02eb8a 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-ant/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-ant/build.gradle @@ -29,7 +29,7 @@ dependencies { testRepository project(path: ':spring-boot-project:spring-boot-tools:spring-boot-loader', configuration: 'mavenRepository') testRepository project(path: ':spring-boot-project:spring-boot-starters:spring-boot-starter', configuration: 'mavenRepository') - testImplementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + testImplementation platform(project(':spring-boot-project:spring-boot-dependencies')) testImplementation project(path: ':spring-boot-project:spring-boot-tools:spring-boot-loader-tools') testImplementation 'org.assertj:assertj-core' testImplementation 'org.junit.jupiter:junit-jupiter' diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-atmosphere/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-atmosphere/build.gradle index 75edfaedf1..5a661a3ddf 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-atmosphere/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-atmosphere/build.gradle @@ -1,6 +1,7 @@ plugins { id 'java' id 'org.springframework.boot.conventions' + id 'org.springframework.boot.internal-dependency-management' } description = 'Spring Boot Atmosphere smoke test' diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty-jsp/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty-jsp/build.gradle index 75490b6c9c..f3af638724 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty-jsp/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-jetty-jsp/build.gradle @@ -8,18 +8,18 @@ description = 'Spring Boot Jetty JSP smoke test' dependencies { compileOnly 'jakarta.servlet:jakarta.servlet-api' compileOnly project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jetty') - + implementation(project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web')) { exclude module: 'spring-boot-starter-tomcat' } - - providedRuntime enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + + providedRuntime platform(project(':spring-boot-project:spring-boot-dependencies')) providedRuntime('org.eclipse.jetty:apache-jsp') { exclude group: 'javax.annotation', module: 'javax.annotation-api' } - + runtimeOnly 'javax.servlet:jstl' - + testImplementation project(':spring-boot-project:spring-boot-starters:spring-boot-starter-test') testImplementation project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jetty') } diff --git a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-war/build.gradle b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-war/build.gradle index dc133506d3..b6f8bc2c3d 100644 --- a/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-war/build.gradle +++ b/spring-boot-tests/spring-boot-smoke-tests/spring-boot-smoke-test-war/build.gradle @@ -5,12 +5,12 @@ plugins { description = 'Spring Boot war smoke test' -dependencies { +dependencies { implementation(project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web')) { exclude module: 'spring-boot-starter-tomcat' } - providedCompile enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) + providedCompile platform(project(':spring-boot-project:spring-boot-dependencies')) providedCompile 'jakarta.servlet:jakarta.servlet-api' - + testImplementation project(':spring-boot-project:spring-boot-starters:spring-boot-starter-test') }