Revert "Rework dep management to avoid consumers picking up strict constraints"

This reverts commit b34a311d02 as,
having disabled the publishing of Gradle's module metadata (4f75ab5),
the changes are no longer needed.

See gh-19609
This commit is contained in:
Andy Wilkinson 2020-01-14 12:15:53 +00:00
parent 4f75ab5f89
commit aefe52e4d0
78 changed files with 102 additions and 188 deletions

View File

@ -52,10 +52,6 @@ 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"

View File

@ -1,60 +0,0 @@
/*
* 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

@ -113,7 +113,7 @@ public class BomExtension {
for (String bomImport : group.getBoms()) {
this.putArtifactVersionProperty(group.getId(), bomImport, library.getVersionProperty());
this.dependencyHandler.add("api", this.dependencyHandler
.platform(createDependencyNotation(group.getId(), bomImport, library.getVersion())));
.enforcedPlatform(createDependencyNotation(group.getId(), bomImport, library.getVersion())));
}
}
}

View File

@ -29,7 +29,6 @@ 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;
@ -47,7 +46,6 @@ public class StarterPlugin implements Plugin<Project> {
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);

View File

@ -5,7 +5,6 @@ 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'
}
@ -17,13 +16,12 @@ configurations {
}
dependencies {
asciidoctorExtensions platform(project(':spring-boot-project:spring-boot-dependencies'))
asciidoctorExtensions enforcedPlatform(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'
@ -31,7 +29,7 @@ dependencies {
implementation 'org.springframework:spring-core'
implementation 'org.springframework:spring-context'
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 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml'
optional 'com.github.ben-manes.caffeine:caffeine'

View File

@ -9,11 +9,10 @@ plugins {
description = 'Spring Boot Actuator'
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
implementation project(':spring-boot-project:spring-boot')
optional platform(project(':spring-boot-project:spring-boot-dependencies'))
optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
optional 'com.fasterxml.jackson.core:jackson-databind'
optional 'com.hazelcast:hazelcast'
optional 'com.hazelcast:hazelcast-spring'

View File

@ -4,7 +4,6 @@ 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'
}
@ -12,9 +11,10 @@ description = 'Spring Boot AutoConfigure'
dependencies {
api project(':spring-boot-project:spring-boot')
api platform(project(':spring-boot-project:spring-boot-dependencies'))
optional 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 '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 platform(project(':spring-boot-project:spring-boot-parent'))
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-test')
testImplementation 'ch.qos.logback:logback-classic'

View File

@ -3,7 +3,6 @@ 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"
@ -16,14 +15,16 @@ 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 platform(project(':spring-boot-project:spring-boot-parent'))
implementation enforcedPlatform(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'
@ -50,7 +51,7 @@ dependencies {
implementation 'org.springframework:spring-core'
implementation 'org.springframework.security:spring-security-crypto'
intTestImplementation platform(project(':spring-boot-project:spring-boot-dependencies'))
intTestImplementation enforcedPlatform(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'

View File

@ -4,7 +4,6 @@ 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'
}
@ -15,13 +14,13 @@ configurations {
}
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
implementation enforcedPlatform(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')
@ -32,7 +31,7 @@ dependencies {
intTestImplementation 'net.bytebuddy:byte-buddy'
intTestRuntimeOnly 'org.springframework:spring-web'
optional platform(project(':spring-boot-project:spring-boot-dependencies'))
optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
optional 'javax.servlet:javax.servlet-api'
optional 'org.apache.derby:derby'
optional 'org.hibernate:hibernate-core'

View File

@ -2,14 +2,12 @@ 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 {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
implementation enforcedPlatform(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')

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for JMS messaging using Apache ActiveMQ"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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') {

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"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring AMQP and Rabbit MQ"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for aspect-oriented programming with Spring AOP and AspectJ"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for JMS messaging using Apache Artemis"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Batch"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Framework's caching support"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
api project(':spring-boot-project:spring-boot-starters:spring-boot-starter')
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"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Cassandra distributed database and Spring Data Cassandra Reactive"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Cassandra distributed database and Spring Data Cassandra"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Couchbase document-oriented database and Spring Data Couchbase Reactive"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Couchbase document-oriented database and Spring Data Couchbase"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Elasticsearch search and analytics engine and Spring Data Elasticsearch"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Data JDBC"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'
}

View File

@ -5,12 +5,12 @@ plugins {
description = "Starter for using Spring Data JPA with Hibernate"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Data LDAP"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'
}

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using MongoDB document-oriented database and Spring Data MongoDB Reactive"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using MongoDB document-oriented database and Spring Data MongoDB"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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') {

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Neo4j graph database and Spring Data Neo4j"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'
}

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"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
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"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for exposing Spring Data repositories over REST using Spring Data REST"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'
}

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using the Apache Solr search platform with Spring Data Solr"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building MVC web applications using FreeMarker views"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

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

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building hypermedia-based RESTful web application with Spring MVC and Spring HATEOAS"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Integration"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'
}

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using JDBC with the HikariCP connection pool"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

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"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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')

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Jetty as the embedded servlet container. An alternative to spring-boot-starter-tomcat"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

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"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for reading and writing json"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for JTA transactions using Atomikos"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for JTA transactions using Bitronix"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Log4j2 for logging. An alternative to spring-boot-starter-logging"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for logging using Logback. Default logging starter"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Java Mail and Spring Framework's email sending support"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building web applications using Mustache views"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
api project(':spring-boot-project:spring-boot-starters:spring-boot-starter')
api 'com.samskivert:jmustache'
}

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Security's OAuth2/OpenID Connect client features"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Security's OAuth2 resource server features"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using the Quartz scheduler"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,6 +5,6 @@ plugins {
description = "Starter for using Reactor Netty as the embedded reactive HTTP server."
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
api 'io.projectreactor.netty:reactor-netty'
}

View File

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

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Security"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

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

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building MVC web applications using Thymeleaf views"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

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"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Undertow as the embedded servlet container. An alternative to spring-boot-starter-tomcat"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Java Bean Validation with Hibernate Validator"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for using Spring Web Services"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

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"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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')

View File

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

View File

@ -5,7 +5,7 @@ plugins {
description = "Starter for building WebSocket applications using Spring Framework's WebSocket support"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(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'

View File

@ -5,7 +5,7 @@ plugins {
description = "Core starter, including auto-configuration support, logging and YAML"
dependencies {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
api enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
api project(':spring-boot-project:spring-boot')
api project(':spring-boot-project:spring-boot-autoconfigure')

View File

@ -2,20 +2,18 @@ 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 {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
implementation enforcedPlatform(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 platform(project(':spring-boot-project:spring-boot-dependencies'))
optional enforcedPlatform(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'
@ -48,6 +46,7 @@ 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'

View File

@ -3,17 +3,16 @@ 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 {
api platform(project(':spring-boot-project:spring-boot-dependencies'))
implementation enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
implementation project(':spring-boot-project:spring-boot')
optional platform(project(':spring-boot-project:spring-boot-dependencies'))
optional enforcedPlatform(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'
@ -37,6 +36,7 @@ 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'

View File

@ -2,7 +2,6 @@ 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'
@ -20,11 +19,10 @@ 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"
}

View File

@ -2,14 +2,12 @@ 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 {
api platform(project(path: ":spring-boot-project:spring-boot-parent"))
implementation enforcedPlatform(project(path: ":spring-boot-project:spring-boot-parent"))
implementation "com.vaadin.external.google:android-json"
testImplementation "org.junit.jupiter:junit-jupiter"

View File

@ -4,7 +4,6 @@ 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'
}
@ -26,16 +25,14 @@ 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 platform(project(':spring-boot-project:spring-boot-dependencies'))
optional enforcedPlatform(project(':spring-boot-project:spring-boot-dependencies'))
optional 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.50'
testImplementation 'org.junit.jupiter:junit-jupiter'

View File

@ -2,7 +2,6 @@ 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'
@ -14,11 +13,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")

View File

@ -2,16 +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 {
api platform(project(":spring-boot-project:spring-boot-dependencies"))
compileOnly "org.springframework:spring-core"
implementation enforcedPlatform(project(":spring-boot-project:spring-boot-dependencies"))
testImplementation project(":spring-boot-project:spring-boot-tools:spring-boot-test-support")
testImplementation "org.assertj:assertj-core"

View File

@ -2,7 +2,6 @@ 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'
}
@ -14,25 +13,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 platform(project(':spring-boot-project:spring-boot-parent'))
intTestImplementation enforcedPlatform(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 platform(project(':spring-boot-project:spring-boot-parent'))
optional enforcedPlatform(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'

View File

@ -1,14 +1,11 @@
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"
@ -20,6 +17,7 @@ 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"

View File

@ -4,22 +4,21 @@ 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 platform(project(':spring-boot-project:spring-boot-dependencies'))
annotationProcessor enforcedPlatform(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'
optional 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 'ch.qos.logback:logback-classic'
optional 'com.atomikos:transactions-jdbc'
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-starters:spring-boot-starter', configuration: 'mavenRepository')
testImplementation platform(project(':spring-boot-project:spring-boot-dependencies'))
testImplementation enforcedPlatform(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'

View File

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

View File

@ -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 platform(project(':spring-boot-project:spring-boot-dependencies'))
providedRuntime enforcedPlatform(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')
}

View File

@ -10,7 +10,7 @@ dependencies {
exclude module: 'spring-boot-starter-tomcat'
}
providedCompile platform(project(':spring-boot-project:spring-boot-dependencies'))
providedCompile enforcedPlatform(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')