Rework dep mgmt again to avoid consumers picking up strict constraints

This paves the way for publishing Gradle module metadata once the
problem caused by snapshot versions and our two-step publication
process has been addressed.

See gh-19609
This commit is contained in:
Andy Wilkinson 2020-01-15 12:32:37 +00:00
parent 5ba0a9120e
commit 714a187d8f
79 changed files with 212 additions and 106 deletions

View File

@ -53,6 +53,10 @@ gradlePlugin {
id = "org.springframework.boot.conventions" id = "org.springframework.boot.conventions"
implementationClass = "org.springframework.boot.build.ConventionsPlugin" implementationClass = "org.springframework.boot.build.ConventionsPlugin"
} }
dependencyManagementPlugin {
id = "org.springframework.boot.internal-dependency-management"
implementationClass = "org.springframework.boot.build.InternalDependencyManagementPlugin"
}
deployedPlugin { deployedPlugin {
id = "org.springframework.boot.deployed" id = "org.springframework.boot.deployed"
implementationClass = "org.springframework.boot.build.DeployedPlugin" implementationClass = "org.springframework.boot.build.DeployedPlugin"

View File

@ -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<Project> {
@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));
}
}

View File

@ -30,6 +30,7 @@ import org.apache.maven.artifact.versioning.VersionRange;
import org.gradle.api.InvalidUserCodeException; import org.gradle.api.InvalidUserCodeException;
import org.gradle.api.InvalidUserDataException; import org.gradle.api.InvalidUserDataException;
import org.gradle.api.artifacts.dsl.DependencyHandler; import org.gradle.api.artifacts.dsl.DependencyHandler;
import org.gradle.api.plugins.JavaPlatformPlugin;
import org.gradle.util.ConfigureUtil; import org.gradle.util.ConfigureUtil;
import org.springframework.boot.build.bom.Library.Exclusion; import org.springframework.boot.build.bom.Library.Exclusion;
@ -51,10 +52,10 @@ public class BomExtension {
private final List<Library> libraries = new ArrayList<Library>(); private final List<Library> libraries = new ArrayList<Library>();
private final DependencyHandler dependencyHandler;
private final UpgradeHandler upgradeHandler = new UpgradeHandler(); private final UpgradeHandler upgradeHandler = new UpgradeHandler();
private final DependencyHandler dependencyHandler;
public BomExtension(DependencyHandler dependencyHandler) { public BomExtension(DependencyHandler dependencyHandler) {
this.dependencyHandler = dependencyHandler; this.dependencyHandler = dependencyHandler;
} }
@ -107,13 +108,16 @@ public class BomExtension {
for (Group group : library.getGroups()) { for (Group group : library.getGroups()) {
for (Module module : group.getModules()) { for (Module module : group.getModules()) {
this.putArtifactVersionProperty(group.getId(), module.getName(), library.getVersionProperty()); 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())); createDependencyNotation(group.getId(), module.getName(), library.getVersion()));
} }
for (String bomImport : group.getBoms()) { for (String bomImport : group.getBoms()) {
this.putArtifactVersionProperty(group.getId(), bomImport, library.getVersionProperty()); this.putArtifactVersionProperty(group.getId(), bomImport, library.getVersionProperty());
this.dependencyHandler.add("api", this.dependencyHandler String bomDependency = createDependencyNotation(group.getId(), bomImport, library.getVersion());
.enforcedPlatform(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));
} }
} }
} }

View File

@ -67,6 +67,8 @@ import org.springframework.util.FileCopyUtils;
*/ */
public class BomPlugin implements Plugin<Project> { public class BomPlugin implements Plugin<Project> {
static final String API_ENFORCED_CONFIGURATION_NAME = "apiEnforced";
@Override @Override
public void apply(Project project) { public void apply(Project project) {
PluginContainer plugins = project.getPlugins(); PluginContainer plugins = project.getPlugins();
@ -75,6 +77,7 @@ public class BomPlugin implements Plugin<Project> {
plugins.apply(JavaPlatformPlugin.class); plugins.apply(JavaPlatformPlugin.class);
JavaPlatformExtension javaPlatform = project.getExtensions().getByType(JavaPlatformExtension.class); JavaPlatformExtension javaPlatform = project.getExtensions().getByType(JavaPlatformExtension.class);
javaPlatform.allowDependencies(); javaPlatform.allowDependencies();
createApiEnforcedConfiguration(project);
BomExtension bom = project.getExtensions().create("bom", BomExtension.class, project.getDependencies()); BomExtension bom = project.getExtensions().create("bom", BomExtension.class, project.getDependencies());
project.getTasks().create("bomrCheck", CheckBom.class, bom); project.getTasks().create("bomrCheck", CheckBom.class, bom);
project.getTasks().create("bomrUpgrade", UpgradeBom.class, bom); project.getTasks().create("bomrUpgrade", UpgradeBom.class, bom);
@ -114,6 +117,19 @@ public class BomPlugin implements Plugin<Project> {
}); });
} }
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 static final class PublishingCustomizer {
private final Project project; private final Project project;

View File

@ -29,6 +29,7 @@ import org.gradle.api.plugins.PluginContainer;
import org.springframework.boot.build.ConventionsPlugin; import org.springframework.boot.build.ConventionsPlugin;
import org.springframework.boot.build.DeployedPlugin; 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.CheckClasspathForConflicts;
import org.springframework.boot.build.classpath.CheckClasspathForProhibitedDependencies; import org.springframework.boot.build.classpath.CheckClasspathForProhibitedDependencies;
import org.springframework.util.StringUtils; import org.springframework.util.StringUtils;
@ -46,6 +47,7 @@ public class StarterPlugin implements Plugin<Project> {
plugins.apply(DeployedPlugin.class); plugins.apply(DeployedPlugin.class);
plugins.apply(JavaLibraryPlugin.class); plugins.apply(JavaLibraryPlugin.class);
plugins.apply(ConventionsPlugin.class); plugins.apply(ConventionsPlugin.class);
plugins.apply(InternalDependencyManagementPlugin.class);
StarterMetadata starterMetadata = project.getTasks().create("starterMetadata", StarterMetadata.class); StarterMetadata starterMetadata = project.getTasks().create("starterMetadata", StarterMetadata.class);
ConfigurationContainer configurations = project.getConfigurations(); ConfigurationContainer configurations = project.getConfigurations();
Configuration runtimeClasspath = configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME); Configuration runtimeClasspath = configurations.getByName(JavaPlugin.RUNTIME_CLASSPATH_CONFIGURATION_NAME);

View File

@ -5,6 +5,7 @@ plugins {
id 'org.springframework.boot.auto-configuration' id 'org.springframework.boot.auto-configuration'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.deployed' id 'org.springframework.boot.deployed'
id 'org.springframework.boot.internal-dependency-management'
id 'org.springframework.boot.optional-dependencies' id 'org.springframework.boot.optional-dependencies'
} }
@ -16,12 +17,13 @@ configurations {
} }
dependencies { 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' asciidoctorExtensions 'org.springframework.restdocs:spring-restdocs-asciidoctor'
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api project(':spring-boot-project:spring-boot-actuator') 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')
implementation project(':spring-boot-project:spring-boot-autoconfigure') implementation project(':spring-boot-project:spring-boot-autoconfigure')
implementation 'com.fasterxml.jackson.core:jackson-databind' implementation 'com.fasterxml.jackson.core:jackson-databind'
@ -29,7 +31,7 @@ dependencies {
implementation 'org.springframework:spring-core' implementation 'org.springframework:spring-core'
implementation 'org.springframework:spring-context' 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 'ch.qos.logback:logback-classic'
optional 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml' optional 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
optional 'com.github.ben-manes.caffeine:caffeine' optional 'com.github.ben-manes.caffeine:caffeine'

View File

@ -9,10 +9,11 @@ plugins {
description = 'Spring Boot Actuator' description = 'Spring Boot Actuator'
dependencies { 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')
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.fasterxml.jackson.core:jackson-databind'
optional 'com.hazelcast:hazelcast' optional 'com.hazelcast:hazelcast'
optional 'com.hazelcast:hazelcast-spring' optional 'com.hazelcast:hazelcast-spring'

View File

@ -4,6 +4,7 @@ plugins {
id 'org.springframework.boot.auto-configuration' id 'org.springframework.boot.auto-configuration'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.deployed' id 'org.springframework.boot.deployed'
id 'org.springframework.boot.internal-dependency-management'
id 'org.springframework.boot.optional-dependencies' id 'org.springframework.boot.optional-dependencies'
} }
@ -11,10 +12,9 @@ description = 'Spring Boot AutoConfigure'
dependencies { dependencies {
api project(':spring-boot-project:spring-boot') 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 platform(project(':spring-boot-project:spring-boot-dependencies'))
optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
optional 'com.atomikos:transactions-jdbc' optional 'com.atomikos:transactions-jdbc'
optional 'com.atomikos:transactions-jta' optional 'com.atomikos:transactions-jta'
optional 'com.couchbase.client:couchbase-spring-cache' optional 'com.couchbase.client:couchbase-spring-cache'
@ -148,7 +148,7 @@ dependencies {
optional 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5' optional 'org.thymeleaf.extras:thymeleaf-extras-springsecurity5'
optional 'redis.clients:jedis' 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-tools:spring-boot-test-support')
testImplementation project(':spring-boot-project:spring-boot-test') testImplementation project(':spring-boot-project:spring-boot-test')
testImplementation 'ch.qos.logback:logback-classic' testImplementation 'ch.qos.logback:logback-classic'

View File

@ -3,6 +3,7 @@ plugins {
id 'org.springframework.boot.deployed' id 'org.springframework.boot.deployed'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.integration-test' id 'org.springframework.boot.integration-test'
id 'org.springframework.boot.internal-dependency-management'
} }
description = "Spring Boot CLI" description = "Spring Boot CLI"
@ -15,16 +16,14 @@ configurations {
dependencies { dependencies {
compileOnly project(':spring-boot-project:spring-boot') compileOnly project(':spring-boot-project:spring-boot')
compileOnly 'jakarta.servlet:jakarta.servlet-api' compileOnly 'jakarta.servlet:jakarta.servlet-api'
compileOnly 'org.codehaus.groovy:groovy-templates' compileOnly 'org.codehaus.groovy:groovy-templates'
compileOnly 'org.springframework:spring-web' compileOnly 'org.springframework:spring-web'
dependenciesBom project(path: ':spring-boot-project:spring-boot-dependencies', configuration: 'effectiveBom') 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 project(':spring-boot-project:spring-boot-tools:spring-boot-loader-tools')
implementation 'com.vaadin.external.google:android-json' implementation 'com.vaadin.external.google:android-json'
implementation 'jline:jline' implementation 'jline:jline'
implementation 'net.sf.jopt-simple:jopt-simple' implementation 'net.sf.jopt-simple:jopt-simple'
@ -51,7 +50,7 @@ dependencies {
implementation 'org.springframework:spring-core' implementation 'org.springframework:spring-core'
implementation 'org.springframework.security:spring-security-crypto' 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-loader-tools')
intTestImplementation project(':spring-boot-project:spring-boot-tools:spring-boot-test-support') intTestImplementation project(':spring-boot-project:spring-boot-tools:spring-boot-test-support')
intTestImplementation 'org.assertj:assertj-core' intTestImplementation 'org.assertj:assertj-core'

View File

@ -4,6 +4,7 @@ plugins {
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.deployed' id 'org.springframework.boot.deployed'
id 'org.springframework.boot.integration-test' id 'org.springframework.boot.integration-test'
id 'org.springframework.boot.internal-dependency-management'
id 'org.springframework.boot.optional-dependencies' id 'org.springframework.boot.optional-dependencies'
} }
@ -14,13 +15,13 @@ configurations {
} }
dependencies { 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')
implementation project(':spring-boot-project:spring-boot-autoconfigure') implementation project(':spring-boot-project:spring-boot-autoconfigure')
intTestDependencies project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web') 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-autoconfigure')
intTestImplementation project(':spring-boot-project:spring-boot-test') intTestImplementation project(':spring-boot-project:spring-boot-test')
intTestImplementation project(':spring-boot-project:spring-boot-tools:spring-boot-test-support') intTestImplementation project(':spring-boot-project:spring-boot-tools:spring-boot-test-support')
@ -31,7 +32,7 @@ dependencies {
intTestImplementation 'net.bytebuddy:byte-buddy' intTestImplementation 'net.bytebuddy:byte-buddy'
intTestRuntimeOnly 'org.springframework:spring-web' 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 'javax.servlet:javax.servlet-api'
optional 'org.apache.derby:derby' optional 'org.apache.derby:derby'
optional 'org.hibernate:hibernate-core' optional 'org.hibernate:hibernate-core'

View File

@ -2,12 +2,14 @@ plugins {
id 'java-library' id 'java-library'
id 'maven-publish' id 'maven-publish'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.internal-dependency-management'
} }
description = 'Spring Boot Properties Migrator' description = 'Spring Boot Properties Migrator'
dependencies { 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')
implementation project(':spring-boot-project:spring-boot-tools:spring-boot-configuration-metadata') implementation project(':spring-boot-project:spring-boot-tools:spring-boot-configuration-metadata')

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for JMS messaging using Apache ActiveMQ" description = "Starter for JMS messaging using Apache ActiveMQ"
dependencies { 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')
api 'org.springframework:spring-jms' api 'org.springframework:spring-jms'
api ('org.apache.activemq:activemq-broker') { api ('org.apache.activemq:activemq-broker') {

View File

@ -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" description = "Starter for using Spring Boot's Actuator which provides production ready features to help you monitor and manage your application"
dependencies { 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')
api project(':spring-boot-project:spring-boot-actuator-autoconfigure') api project(':spring-boot-project:spring-boot-actuator-autoconfigure')
api 'io.micrometer:micrometer-core' api 'io.micrometer:micrometer-core'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring AMQP and Rabbit MQ" description = "Starter for using Spring AMQP and Rabbit MQ"
dependencies { 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')
api 'org.springframework:spring-messaging' api 'org.springframework:spring-messaging'
api 'org.springframework.amqp:spring-rabbit' api 'org.springframework.amqp:spring-rabbit'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for aspect-oriented programming with Spring AOP and AspectJ" description = "Starter for aspect-oriented programming with Spring AOP and AspectJ"
dependencies { 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')
api 'org.springframework:spring-aop' api 'org.springframework:spring-aop'
api 'org.aspectj:aspectjweaver' api 'org.aspectj:aspectjweaver'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for JMS messaging using Apache Artemis" description = "Starter for JMS messaging using Apache Artemis"
dependencies { 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')
api 'jakarta.jms:jakarta.jms-api' api 'jakarta.jms:jakarta.jms-api'
api 'jakarta.json:jakarta.json-api' api 'jakarta.json:jakarta.json-api'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Batch" description = "Starter for using Spring Batch"
dependencies { 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')
api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc')
api 'org.springframework.batch:spring-batch-core' api 'org.springframework.batch:spring-batch-core'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Framework's caching support" description = "Starter for using Spring Framework's caching support"
dependencies { 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')
api 'org.springframework:spring-context-support' api 'org.springframework:spring-context-support'
} }

View File

@ -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" description = "Starter for using Spring Cloud Connectors which simplifies connecting to services in cloud platforms like Cloud Foundry and Heroku"
dependencies { 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')
api 'org.springframework.cloud:spring-cloud-spring-service-connector' api 'org.springframework.cloud:spring-cloud-spring-service-connector'
api 'org.springframework.cloud:spring-cloud-cloudfoundry-connector' api 'org.springframework.cloud:spring-cloud-cloudfoundry-connector'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Cassandra distributed database and Spring Data Cassandra Reactive" description = "Starter for using Cassandra distributed database and Spring Data Cassandra Reactive"
dependencies { 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')
api 'org.springframework:spring-tx' api 'org.springframework:spring-tx'
api 'org.springframework.data:spring-data-cassandra' api 'org.springframework.data:spring-data-cassandra'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Cassandra distributed database and Spring Data Cassandra" description = "Starter for using Cassandra distributed database and Spring Data Cassandra"
dependencies { 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')
api 'org.springframework:spring-tx' api 'org.springframework:spring-tx'
api 'org.springframework.data:spring-data-cassandra' api 'org.springframework.data:spring-data-cassandra'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Couchbase document-oriented database and Spring Data Couchbase Reactive" description = "Starter for using Couchbase document-oriented database and Spring Data Couchbase Reactive"
dependencies { 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')
api 'io.projectreactor:reactor-core' api 'io.projectreactor:reactor-core'
api 'io.reactivex:rxjava-reactive-streams' api 'io.reactivex:rxjava-reactive-streams'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Couchbase document-oriented database and Spring Data Couchbase" description = "Starter for using Couchbase document-oriented database and Spring Data Couchbase"
dependencies { 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')
api ('org.springframework.data:spring-data-couchbase') { api ('org.springframework.data:spring-data-couchbase') {
exclude group: 'com.couchbase.client', module: 'encryption' exclude group: 'com.couchbase.client', module: 'encryption'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Elasticsearch search and analytics engine and Spring Data Elasticsearch" description = "Starter for using Elasticsearch search and analytics engine and Spring Data Elasticsearch"
dependencies { 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')
api ('org.springframework.data:spring-data-elasticsearch') { api ('org.springframework.data:spring-data-elasticsearch') {
exclude group: 'org.elasticsearch.client', module: 'transport' exclude group: 'org.elasticsearch.client', module: 'transport'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Data JDBC" description = "Starter for using Spring Data JDBC"
dependencies { 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 project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc')
api 'org.springframework.data:spring-data-jdbc' api 'org.springframework.data:spring-data-jdbc'
} }

View File

@ -5,12 +5,12 @@ plugins {
description = "Starter for using Spring Data JPA with Hibernate" description = "Starter for using Spring Data JPA with Hibernate"
dependencies { 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-aop')
api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc')
api 'jakarta.transaction:jakarta.transaction-api' api 'jakarta.transaction:jakarta.transaction-api'
api 'jakarta.persistence:jakarta.persistence-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.activation', module: 'javax.activation-api'
exclude group: 'javax.persistence', module: 'javax.persistence-api' exclude group: 'javax.persistence', module: 'javax.persistence-api'
exclude group: 'javax.xml.bind', module: 'jaxb-api' exclude group: 'javax.xml.bind', module: 'jaxb-api'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Data LDAP" description = "Starter for using Spring Data LDAP"
dependencies { 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')
api 'org.springframework.data:spring-data-ldap' api 'org.springframework.data:spring-data-ldap'
} }

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using MongoDB document-oriented database and Spring Data MongoDB Reactive" description = "Starter for using MongoDB document-oriented database and Spring Data MongoDB Reactive"
dependencies { 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')
api 'io.projectreactor:reactor-core' api 'io.projectreactor:reactor-core'
api 'org.mongodb:mongodb-driver' api 'org.mongodb:mongodb-driver'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using MongoDB document-oriented database and Spring Data MongoDB" description = "Starter for using MongoDB document-oriented database and Spring Data MongoDB"
dependencies { 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')
api 'org.mongodb:mongodb-driver' api 'org.mongodb:mongodb-driver'
api ('org.springframework.data:spring-data-mongodb') { api ('org.springframework.data:spring-data-mongodb') {

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Neo4j graph database and Spring Data Neo4j" description = "Starter for using Neo4j graph database and Spring Data Neo4j"
dependencies { 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')
api 'org.springframework.data:spring-data-neo4j' api 'org.springframework.data:spring-data-neo4j'
} }

View File

@ -5,6 +5,6 @@ plugins {
description = "Starter for using Redis key-value data store with Spring Data Redis reactive and the Lettuce client" description = "Starter for using Redis key-value data store with Spring Data Redis reactive and the Lettuce client"
dependencies { 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') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-data-redis')
} }

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Redis key-value data store with Spring Data Redis and the Lettuce client" description = "Starter for using Redis key-value data store with Spring Data Redis and the Lettuce client"
dependencies { 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')
api 'org.springframework.data:spring-data-redis' api 'org.springframework.data:spring-data-redis'
api 'io.lettuce:lettuce-core' api 'io.lettuce:lettuce-core'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for exposing Spring Data repositories over REST using Spring Data REST" description = "Starter for exposing Spring Data repositories over REST using Spring Data REST"
dependencies { 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 project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web')
api 'org.springframework.data:spring-data-rest-webmvc' api 'org.springframework.data:spring-data-rest-webmvc'
} }

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using the Apache Solr search platform with Spring Data Solr" description = "Starter for using the Apache Solr search platform with Spring Data Solr"
dependencies { 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')
api ('org.apache.solr:solr-solrj') { api ('org.apache.solr:solr-solrj') {
exclude group: 'org.slf4j', module: 'jcl-over-slf4j' exclude group: 'org.slf4j', module: 'jcl-over-slf4j'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building MVC web applications using FreeMarker views" description = "Starter for building MVC web applications using FreeMarker views"
dependencies { 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')
api 'org.freemarker:freemarker' api 'org.freemarker:freemarker'
api 'org.springframework:spring-context-support' api 'org.springframework:spring-context-support'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building MVC web applications using Groovy Templates views" description = "Starter for building MVC web applications using Groovy Templates views"
dependencies { 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 project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web')
api 'org.codehaus.groovy:groovy-templates' api 'org.codehaus.groovy:groovy-templates'
} }

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS" description = "Starter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS"
dependencies { 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 project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web')
api 'org.springframework.hateoas:spring-hateoas' api 'org.springframework.hateoas:spring-hateoas'
api 'org.springframework.plugin:spring-plugin-core' api 'org.springframework.plugin:spring-plugin-core'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Integration" description = "Starter for using Spring Integration"
dependencies { 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-aop')
api 'org.springframework.integration:spring-integration-core' api 'org.springframework.integration:spring-integration-core'
} }

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using JDBC with the HikariCP connection pool" description = "Starter for using JDBC with the HikariCP connection pool"
dependencies { 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')
api 'com.zaxxer:HikariCP' api 'com.zaxxer:HikariCP'
api 'org.springframework:spring-jdbc' api 'org.springframework:spring-jdbc'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web" description = "Starter for building RESTful web applications using JAX-RS and Jersey. An alternative to spring-boot-starter-web"
dependencies { 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-json')
api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-tomcat') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-tomcat')
api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-validation') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-validation')

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Jetty as the embedded servlet container. An alternative to spring-boot-starter-tomcat" description = "Starter for using Jetty as the embedded servlet container. An alternative to spring-boot-starter-tomcat"
dependencies { 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.servlet:jakarta.servlet-api'
api 'jakarta.websocket:jakarta.websocket-api' api 'jakarta.websocket:jakarta.websocket-api'
api 'org.eclipse.jetty:jetty-servlets' api 'org.eclipse.jetty:jetty-servlets'

View File

@ -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" description = "Starter for using jOOQ to access SQL databases. An alternative to spring-boot-starter-data-jpa or spring-boot-starter-jdbc"
dependencies { 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 project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jdbc')
api 'jakarta.activation:jakarta.activation-api' api 'jakarta.activation:jakarta.activation-api'
api 'jakarta.xml.bind:jakarta.xml.bind-api' api 'jakarta.xml.bind:jakarta.xml.bind-api'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for reading and writing json" description = "Starter for reading and writing json"
dependencies { 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')
api 'org.springframework:spring-web' api 'org.springframework:spring-web'
api 'com.fasterxml.jackson.core:jackson-databind' api 'com.fasterxml.jackson.core:jackson-databind'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for JTA transactions using Atomikos" description = "Starter for JTA transactions using Atomikos"
dependencies { 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')
api 'com.atomikos:transactions-jms' api 'com.atomikos:transactions-jms'
api 'com.atomikos:transactions-jta' api 'com.atomikos:transactions-jta'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for JTA transactions using Bitronix" description = "Starter for JTA transactions using Bitronix"
dependencies { 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')
api 'jakarta.jms:jakarta.jms-api' api 'jakarta.jms:jakarta.jms-api'
api 'jakarta.transaction:jakarta.transaction-api' api 'jakarta.transaction:jakarta.transaction-api'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Log4j2 for logging. An alternative to spring-boot-starter-logging" description = "Starter for using Log4j2 for logging. An alternative to spring-boot-starter-logging"
dependencies { 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-slf4j-impl'
api 'org.apache.logging.log4j:log4j-core' api 'org.apache.logging.log4j:log4j-core'
api 'org.apache.logging.log4j:log4j-jul' api 'org.apache.logging.log4j:log4j-jul'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for logging using Logback. Default logging starter" description = "Starter for logging using Logback. Default logging starter"
dependencies { 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 'ch.qos.logback:logback-classic'
api 'org.apache.logging.log4j:log4j-to-slf4j' api 'org.apache.logging.log4j:log4j-to-slf4j'
api 'org.slf4j:jul-to-slf4j' api 'org.slf4j:jul-to-slf4j'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Java Mail and Spring Framework's email sending support" description = "Starter for using Java Mail and Spring Framework's email sending support"
dependencies { 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')
api 'org.springframework:spring-context-support' api 'org.springframework:spring-context-support'
api 'com.sun.mail:jakarta.mail' api 'com.sun.mail:jakarta.mail'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building web applications using Mustache views" description = "Starter for building web applications using Mustache views"
dependencies { 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')
api 'com.samskivert:jmustache' api 'com.samskivert:jmustache'
} }

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Security's OAuth2/OpenID Connect client features" description = "Starter for using Spring Security's OAuth2/OpenID Connect client features"
dependencies { 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')
api 'com.sun.mail:jakarta.mail' api 'com.sun.mail:jakarta.mail'
api 'org.springframework.security:spring-security-config' api 'org.springframework.security:spring-security-config'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Security's OAuth2 resource server features" description = "Starter for using Spring Security's OAuth2 resource server features"
dependencies { 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')
api 'org.springframework.security:spring-security-config' api 'org.springframework.security:spring-security-config'
api 'org.springframework.security:spring-security-core' api 'org.springframework.security:spring-security-core'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using the Quartz scheduler" description = "Starter for using the Quartz scheduler"
dependencies { 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')
api 'org.springframework:spring-context-support' api 'org.springframework:spring-context-support'
api 'org.springframework:spring-tx' api 'org.springframework:spring-tx'

View File

@ -5,6 +5,6 @@ plugins {
description = "Starter for using Reactor Netty as the embedded reactive HTTP server." description = "Starter for using Reactor Netty as the embedded reactive HTTP server."
dependencies { 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' api 'io.projectreactor.netty:reactor-netty'
} }

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building RSocket clients and servers" description = "Starter for building RSocket clients and servers"
dependencies { 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')
api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-json') 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') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-reactor-netty')

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Security" description = "Starter for using Spring Security"
dependencies { 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')
api 'org.springframework:spring-aop' api 'org.springframework:spring-aop'
api 'org.springframework.security:spring-security-config' api 'org.springframework.security:spring-security-config'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for testing Spring Boot applications with libraries including JUnit, Hamcrest and Mockito" description = "Starter for testing Spring Boot applications with libraries including JUnit, Hamcrest and Mockito"
dependencies { 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')
api project(':spring-boot-project:spring-boot-test') api project(':spring-boot-project:spring-boot-test')

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building MVC web applications using Thymeleaf views" description = "Starter for building MVC web applications using Thymeleaf views"
dependencies { 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')
api 'org.thymeleaf:thymeleaf-spring5' api 'org.thymeleaf:thymeleaf-spring5'
api 'org.thymeleaf.extras:thymeleaf-extras-java8time' api 'org.thymeleaf.extras:thymeleaf-extras-java8time'

View File

@ -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" description = "Starter for using Tomcat as the embedded servlet container. Default servlet container starter used by spring-boot-starter-web"
dependencies { 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 'jakarta.annotation:jakarta.annotation-api'
api ('org.apache.tomcat.embed:tomcat-embed-core') { api ('org.apache.tomcat.embed:tomcat-embed-core') {
exclude group: 'org.apache.tomcat', module: 'tomcat-annotations-api' exclude group: 'org.apache.tomcat', module: 'tomcat-annotations-api'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Undertow as the embedded servlet container. An alternative to spring-boot-starter-tomcat" description = "Starter for using Undertow as the embedded servlet container. An alternative to spring-boot-starter-tomcat"
dependencies { 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-core'
api ('io.undertow:undertow-servlet') { api ('io.undertow:undertow-servlet') {
exclude group: 'org.jboss.spec.javax.annotation', module: 'jboss-annotations-api_1.2_spec' exclude group: 'org.jboss.spec.javax.annotation', module: 'jboss-annotations-api_1.2_spec'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Java Bean Validation with Hibernate Validator" description = "Starter for using Java Bean Validation with Hibernate Validator"
dependencies { 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')
api 'org.glassfish:jakarta.el' api 'org.glassfish:jakarta.el'
api 'org.hibernate.validator:hibernate-validator' api 'org.hibernate.validator:hibernate-validator'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Web Services" description = "Starter for using Spring Web Services"
dependencies { 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 project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web')
api 'com.sun.xml.messaging.saaj:saaj-impl' api 'com.sun.xml.messaging.saaj:saaj-impl'
api 'jakarta.xml.ws:jakarta.xml.ws-api' api 'jakarta.xml.ws:jakarta.xml.ws-api'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container" description = "Starter for building web, including RESTful, applications using Spring MVC. Uses Tomcat as the default embedded container"
dependencies { 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')
api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-json') 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-tomcat')

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building WebFlux applications using Spring Framework's Reactive Web support" description = "Starter for building WebFlux applications using Spring Framework's Reactive Web support"
dependencies { 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')
api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-json') 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') api project(':spring-boot-project:spring-boot-starters:spring-boot-starter-reactor-netty')

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building WebSocket applications using Spring Framework's WebSocket support" description = "Starter for building WebSocket applications using Spring Framework's WebSocket support"
dependencies { 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 project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web')
api 'org.springframework:spring-messaging' api 'org.springframework:spring-messaging'
api 'org.springframework:spring-websocket' api 'org.springframework:spring-websocket'

View File

@ -5,7 +5,7 @@ plugins {
description = "Core starter, including auto-configuration support, logging and YAML" description = "Core starter, including auto-configuration support, logging and YAML"
dependencies { 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')
api project(':spring-boot-project:spring-boot-autoconfigure') api project(':spring-boot-project:spring-boot-autoconfigure')

View File

@ -2,18 +2,20 @@ plugins {
id 'java-library' id 'java-library'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.deployed' id 'org.springframework.boot.deployed'
id 'org.springframework.boot.internal-dependency-management'
id 'org.springframework.boot.optional-dependencies' id 'org.springframework.boot.optional-dependencies'
} }
description = 'Spring Boot Test AutoConfigure' description = 'Spring Boot Test AutoConfigure'
dependencies { 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')
implementation project(':spring-boot-project:spring-boot-test') implementation project(':spring-boot-project:spring-boot-test')
implementation project(':spring-boot-project:spring-boot-autoconfigure') 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.json.bind:javax.json.bind-api'
optional 'javax.servlet:javax.servlet-api' optional 'javax.servlet:javax.servlet-api'
optional 'javax.transaction:javax.transaction-api' optional 'javax.transaction:javax.transaction-api'
@ -46,7 +48,6 @@ dependencies {
optional 'org.mongodb:mongodb-driver-async' optional 'org.mongodb:mongodb-driver-async'
optional 'org.mongodb:mongodb-driver-reactivestreams' 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 project(':spring-boot-project:spring-boot-tools:spring-boot-test-support')
testImplementation 'ch.qos.logback:logback-classic' testImplementation 'ch.qos.logback:logback-classic'
testImplementation 'com.fasterxml.jackson.module:jackson-module-parameter-names' testImplementation 'com.fasterxml.jackson.module:jackson-module-parameter-names'

View File

@ -3,16 +3,17 @@ plugins {
id 'org.jetbrains.kotlin.jvm' id 'org.jetbrains.kotlin.jvm'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.deployed' id 'org.springframework.boot.deployed'
id 'org.springframework.boot.internal-dependency-management'
id 'org.springframework.boot.optional-dependencies' id 'org.springframework.boot.optional-dependencies'
} }
description = 'Spring Boot Test' description = 'Spring Boot Test'
dependencies { 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')
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.fasterxml.jackson.core:jackson-databind'
optional 'com.google.code.gson:gson' optional 'com.google.code.gson:gson'
optional 'com.jayway.jsonpath:json-path' optional 'com.jayway.jsonpath:json-path'
@ -36,7 +37,6 @@ dependencies {
optional 'org.springframework:spring-webflux' optional 'org.springframework:spring-webflux'
optional 'net.sourceforge.htmlunit:htmlunit' 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 project(':spring-boot-project:spring-boot-tools:spring-boot-test-support')
testImplementation 'io.mockk:mockk' testImplementation 'io.mockk:mockk'
testImplementation 'javax.json:javax.json-api' testImplementation 'javax.json:javax.json-api'

View File

@ -2,6 +2,7 @@ plugins {
id 'java-library' id 'java-library'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.deployed' id 'org.springframework.boot.deployed'
id 'org.springframework.boot.internal-dependency-management'
} }
description = 'Spring Boot Antlib' description = 'Spring Boot Antlib'
@ -19,10 +20,11 @@ dependencies {
antUnit "org.apache.ant:ant-antunit:1.3" antUnit "org.apache.ant:ant-antunit:1.3"
antIvy "org.apache.ivy:ivy:2.4.0" 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 project(":spring-boot-project:spring-boot-tools:spring-boot-loader")
compileOnly "org.apache.ant:ant:${antVersion}" 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 project(":spring-boot-project:spring-boot-tools:spring-boot-loader-tools")
implementation "org.springframework:spring-core" implementation "org.springframework:spring-core"
} }

View File

@ -2,12 +2,14 @@ plugins {
id 'java-library' id 'java-library'
id 'maven-publish' id 'maven-publish'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.internal-dependency-management'
} }
description = 'Spring Boot Configuration Metadata' description = 'Spring Boot Configuration Metadata'
dependencies { 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" implementation "com.vaadin.external.google:android-json"
testImplementation "org.junit.jupiter:junit-jupiter" testImplementation "org.junit.jupiter:junit-jupiter"

View File

@ -4,6 +4,7 @@ plugins {
id 'org.asciidoctor.jvm.convert' id 'org.asciidoctor.jvm.convert'
id 'org.asciidoctor.jvm.pdf' id 'org.asciidoctor.jvm.pdf'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.internal-dependency-management'
id 'org.springframework.boot.maven-repository' id 'org.springframework.boot.maven-repository'
id 'org.springframework.boot.optional-dependencies' id 'org.springframework.boot.optional-dependencies'
} }
@ -25,14 +26,16 @@ repositories {
} }
dependencies { dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
asciidoctorExtensions 'io.spring.asciidoctor:spring-asciidoctor-extensions-block-switch:0.3.0.RELEASE' 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 project(':spring-boot-project:spring-boot-tools:spring-boot-loader-tools')
implementation 'io.spring.gradle:dependency-management-plugin' implementation 'io.spring.gradle:dependency-management-plugin'
implementation 'org.apache.commons:commons-compress' implementation 'org.apache.commons:commons-compress'
implementation 'org.springframework:spring-core' 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' optional 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50'
testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.junit.jupiter:junit-jupiter'

View File

@ -2,6 +2,7 @@ plugins {
id 'java-library' id 'java-library'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.deployed' id 'org.springframework.boot.deployed'
id 'org.springframework.boot.internal-dependency-management'
} }
description = 'Spring Boot Loader Tools' description = 'Spring Boot Loader Tools'
@ -13,11 +14,11 @@ configurations {
} }
dependencies { dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api "org.apache.commons:commons-compress:1.19" api "org.apache.commons:commons-compress:1.19"
compileOnly "ch.qos.logback:logback-classic" compileOnly "ch.qos.logback:logback-classic"
implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
implementation "org.springframework:spring-core" implementation "org.springframework:spring-core"
loader project(":spring-boot-project:spring-boot-tools:spring-boot-loader") loader project(":spring-boot-project:spring-boot-tools:spring-boot-loader")

View File

@ -2,14 +2,15 @@ plugins {
id 'java-library' id 'java-library'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.deployed' id 'org.springframework.boot.deployed'
id 'org.springframework.boot.internal-dependency-management'
} }
description = 'Spring Boot Loader' description = 'Spring Boot Loader'
dependencies { 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") testImplementation project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")

View File

@ -2,6 +2,7 @@ plugins {
id 'org.asciidoctor.jvm.convert' id 'org.asciidoctor.jvm.convert'
id 'org.asciidoctor.jvm.pdf' id 'org.asciidoctor.jvm.pdf'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.internal-dependency-management'
id 'org.springframework.boot.maven-plugin' id 'org.springframework.boot.maven-plugin'
id 'org.springframework.boot.optional-dependencies' id 'org.springframework.boot.optional-dependencies'
} }
@ -13,25 +14,25 @@ configurations {
} }
dependencies { dependencies {
api platform(project(':spring-boot-project:spring-boot-parent'))
compileOnly 'org.apache.maven.plugin-tools:maven-plugin-annotations' compileOnly 'org.apache.maven.plugin-tools:maven-plugin-annotations'
compileOnly 'org.sonatype.plexus:plexus-build-api' 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 project(':spring-boot-project:spring-boot-tools:spring-boot-loader-tools')
implementation 'org.apache.maven.shared:maven-common-artifact-filters' implementation 'org.apache.maven.shared:maven-common-artifact-filters'
implementation 'org.apache.maven:maven-plugin-api' 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.apache.maven.shared:maven-invoker'
intTestImplementation 'org.assertj:assertj-core' intTestImplementation 'org.assertj:assertj-core'
intTestImplementation 'org.junit.jupiter:junit-jupiter' 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' optional 'org.apache.maven.plugins:maven-shade-plugin'
runtimeOnly 'org.sonatype.plexus:plexus-build-api' runtimeOnly 'org.sonatype.plexus:plexus-build-api'
testImplementation enforcedPlatform(project(':spring-boot-project:spring-boot-parent'))
testImplementation 'org.assertj:assertj-core' testImplementation 'org.assertj:assertj-core'
testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.junit.jupiter:junit-jupiter'
testImplementation 'org.mockito:mockito-core' testImplementation 'org.mockito:mockito-core'

View File

@ -1,11 +1,14 @@
plugins { plugins {
id 'java-library' id 'java-library'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.internal-dependency-management'
} }
description = 'Spring Boot Testing Support' description = 'Spring Boot Testing Support'
dependencies { dependencies {
api platform(project(path: ":spring-boot-project:spring-boot-parent"))
compileOnly "com.datastax.oss:java-driver-core" compileOnly "com.datastax.oss:java-driver-core"
compileOnly "javax.servlet:javax.servlet-api" compileOnly "javax.servlet:javax.servlet-api"
compileOnly "junit:junit" compileOnly "junit:junit"
@ -17,7 +20,6 @@ dependencies {
compileOnly "org.springframework.data:spring-data-redis" compileOnly "org.springframework.data:spring-data-redis"
compileOnly "org.testcontainers:testcontainers" 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-connector-basic"
implementation "org.apache.maven.resolver:maven-resolver-impl" implementation "org.apache.maven.resolver:maven-resolver-impl"
implementation "org.apache.maven:maven-resolver-provider" implementation "org.apache.maven:maven-resolver-provider"

View File

@ -4,21 +4,22 @@ plugins {
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.configuration-properties' id 'org.springframework.boot.configuration-properties'
id 'org.springframework.boot.deployed' id 'org.springframework.boot.deployed'
id 'org.springframework.boot.internal-dependency-management'
id 'org.springframework.boot.optional-dependencies' id 'org.springframework.boot.optional-dependencies'
} }
description = 'Spring Boot' description = 'Spring Boot'
dependencies { 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' 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-core'
api 'org.springframework:spring-context' api 'org.springframework:spring-context'
implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies')) optional platform(project(':spring-boot-project:spring-boot-dependencies'))
optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
optional 'ch.qos.logback:logback-classic' optional 'ch.qos.logback:logback-classic'
optional 'com.atomikos:transactions-jdbc' optional 'com.atomikos:transactions-jdbc'
optional 'com.atomikos:transactions-jms' optional 'com.atomikos:transactions-jms'

View File

@ -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-tools:spring-boot-loader', configuration: 'mavenRepository')
testRepository project(path: ':spring-boot-project:spring-boot-starters:spring-boot-starter', 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 project(path: ':spring-boot-project:spring-boot-tools:spring-boot-loader-tools')
testImplementation 'org.assertj:assertj-core' testImplementation 'org.assertj:assertj-core'
testImplementation 'org.junit.jupiter:junit-jupiter' testImplementation 'org.junit.jupiter:junit-jupiter'

View File

@ -1,6 +1,7 @@
plugins { plugins {
id 'java' id 'java'
id 'org.springframework.boot.conventions' id 'org.springframework.boot.conventions'
id 'org.springframework.boot.internal-dependency-management'
} }
description = 'Spring Boot Atmosphere smoke test' description = 'Spring Boot Atmosphere smoke test'

View File

@ -8,18 +8,18 @@ description = 'Spring Boot Jetty JSP smoke test'
dependencies { dependencies {
compileOnly 'jakarta.servlet:jakarta.servlet-api' compileOnly 'jakarta.servlet:jakarta.servlet-api'
compileOnly project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jetty') compileOnly project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jetty')
implementation(project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web')) { implementation(project(':spring-boot-project:spring-boot-starters:spring-boot-starter-web')) {
exclude module: 'spring-boot-starter-tomcat' 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') { providedRuntime('org.eclipse.jetty:apache-jsp') {
exclude group: 'javax.annotation', module: 'javax.annotation-api' exclude group: 'javax.annotation', module: 'javax.annotation-api'
} }
runtimeOnly 'javax.servlet:jstl' 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-test')
testImplementation project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jetty') testImplementation project(':spring-boot-project:spring-boot-starters:spring-boot-starter-jetty')
} }

View File

@ -10,7 +10,7 @@ dependencies {
exclude module: 'spring-boot-starter-tomcat' 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' providedCompile 'jakarta.servlet:jakarta.servlet-api'
testImplementation project(':spring-boot-project:spring-boot-starters:spring-boot-starter-test') testImplementation project(':spring-boot-project:spring-boot-starters:spring-boot-starter-test')