diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index ea576e92c6..65f39a7eb6 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -53,6 +53,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..229045e8ae --- /dev/null +++ b/buildSrc/src/main/java/org/springframework/boot/build/InternalDependencyManagementPlugin.java @@ -0,0 +1,60 @@ +/* + * Copyright 2020-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..c1fd110866 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 @@ -30,6 +30,7 @@ import org.apache.maven.artifact.versioning.VersionRange; import org.gradle.api.InvalidUserCodeException; import org.gradle.api.InvalidUserDataException; import org.gradle.api.artifacts.dsl.DependencyHandler; +import org.gradle.api.plugins.JavaPlatformPlugin; import org.gradle.util.ConfigureUtil; import org.springframework.boot.build.bom.Library.Exclusion; @@ -51,10 +52,10 @@ public class BomExtension { private final List libraries = new ArrayList(); - private final DependencyHandler dependencyHandler; - private final UpgradeHandler upgradeHandler = new UpgradeHandler(); + private final DependencyHandler dependencyHandler; + public BomExtension(DependencyHandler dependencyHandler) { this.dependencyHandler = dependencyHandler; } @@ -107,13 +108,16 @@ public class BomExtension { for (Group group : library.getGroups()) { for (Module module : group.getModules()) { this.putArtifactVersionProperty(group.getId(), module.getName(), library.getVersionProperty()); - this.dependencyHandler.getConstraints().add("api", + this.dependencyHandler.getConstraints().add(JavaPlatformPlugin.API_CONFIGURATION_NAME, createDependencyNotation(group.getId(), module.getName(), library.getVersion())); } 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()))); + String bomDependency = createDependencyNotation(group.getId(), bomImport, library.getVersion()); + this.dependencyHandler.add(JavaPlatformPlugin.API_CONFIGURATION_NAME, + this.dependencyHandler.platform(bomDependency)); + this.dependencyHandler.add(BomPlugin.API_ENFORCED_CONFIGURATION_NAME, + this.dependencyHandler.enforcedPlatform(bomDependency)); } } } diff --git a/buildSrc/src/main/java/org/springframework/boot/build/bom/BomPlugin.java b/buildSrc/src/main/java/org/springframework/boot/build/bom/BomPlugin.java index 9b08ede52d..17321ff4a6 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/bom/BomPlugin.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/bom/BomPlugin.java @@ -67,6 +67,8 @@ import org.springframework.util.FileCopyUtils; */ public class BomPlugin implements Plugin { + static final String API_ENFORCED_CONFIGURATION_NAME = "apiEnforced"; + @Override public void apply(Project project) { PluginContainer plugins = project.getPlugins(); @@ -75,6 +77,7 @@ public class BomPlugin implements Plugin { plugins.apply(JavaPlatformPlugin.class); JavaPlatformExtension javaPlatform = project.getExtensions().getByType(JavaPlatformExtension.class); javaPlatform.allowDependencies(); + createApiEnforcedConfiguration(project); BomExtension bom = project.getExtensions().create("bom", BomExtension.class, project.getDependencies()); project.getTasks().create("bomrCheck", CheckBom.class, bom); project.getTasks().create("bomrUpgrade", UpgradeBom.class, bom); @@ -114,6 +117,19 @@ public class BomPlugin implements Plugin { }); } + private void createApiEnforcedConfiguration(Project project) { + Configuration apiEnforced = project.getConfigurations().create(API_ENFORCED_CONFIGURATION_NAME, + (configuration) -> { + configuration.setCanBeConsumed(false); + configuration.setCanBeResolved(false); + configuration.setVisible(false); + }); + project.getConfigurations().getByName(JavaPlatformPlugin.ENFORCED_API_ELEMENTS_CONFIGURATION_NAME) + .extendsFrom(apiEnforced); + project.getConfigurations().getByName(JavaPlatformPlugin.ENFORCED_RUNTIME_ELEMENTS_CONFIGURATION_NAME) + .extendsFrom(apiEnforced); + } + private static final class PublishingCustomizer { private final Project project; 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 76a9867f29..7e221addee 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 cb512263ef..316cae89ad 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 1223210761..07565d3769 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 39b8ff72b0..1b66008b30 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' @@ -148,7 +148,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 5f5aed5f48..aa63b13cf0 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 6629c872eb..09d6aa952c 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 @@ -10,7 +10,7 @@ dependencies { 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')