Files
spring-boot/spring-boot-project/spring-boot-data-commons/build.gradle
Andy Wilkinson 9ee79c1bbc Break cycle in spring-boot-data-* modules
There was a cycle in the spring-boot-data-* modules.

SpringDataWebAutoConfiguration (which sits at the spring-data-commons
level) referenced RepositoryRestMvcAutoConfiguration (which sits
at the spring-data-rest level). This dependency's expressed in the
wrong direction as data-rest depends on data-commons. The resulting
cycle was not noticable as it was expressed through a String afterName
attribute on `@AutoConfiguration`.

spring-boot-data-commons was also using spring-boot-data-jpa for its
tests, which also results in an inverted dependency relationship.

This commit reworks things so that all of the spring-boot-data-*
modules depend upon spring-boot-data-commons, mirroring the
dependency relationship in Spring Data. The integration tests in
spring-boot-data-commons have been reworked to use Spring Data
directly, avoiding the need for a circular from
spring-boot-data-commons to another spring-boot-data-* module.
2025-06-13 20:06:49 -07:00

29 lines
1.1 KiB
Groovy

plugins {
id "java-library"
id "org.springframework.boot.auto-configuration"
id "org.springframework.boot.configuration-properties"
id "org.springframework.boot.deployed"
id "org.springframework.boot.optional-dependencies"
}
description = "Spring Boot Data Commons"
dependencies {
api(project(":spring-boot-project:spring-boot-webmvc"))
api("org.springframework.data:spring-data-commons")
optional(project(":spring-boot-project:spring-boot-autoconfigure"))
optional(project(":spring-boot-project:spring-boot-metrics"))
testImplementation(project(":spring-boot-project:spring-boot-jdbc"))
testImplementation(project(":spring-boot-project:spring-boot-test"))
testImplementation(project(":spring-boot-project:spring-boot-tools:spring-boot-test-support"))
testImplementation(testFixtures(project(":spring-boot-project:spring-boot-autoconfigure")))
testImplementation("org.springframework.data:spring-data-jdbc")
testRuntimeOnly("ch.qos.logback:logback-classic")
testRuntimeOnly("com.h2database:h2")
testRuntimeOnly("com.zaxxer:HikariCP")
testRuntimeOnly("jakarta.servlet:jakarta.servlet-api")
}