From 9c8bf507d4cee3018a0d8c63c63379e87c97f7da Mon Sep 17 00:00:00 2001 From: Phillip Webb Date: Wed, 26 Aug 2026 12:29:04 -0700 Subject: [PATCH] Simplify documentation dependencies --- .../boot/build/AntoraConventions.java | 18 +- documentation/spring-boot-docs/build.gradle | 233 +----------------- 2 files changed, 6 insertions(+), 245 deletions(-) diff --git a/buildSrc/src/main/java/org/springframework/boot/build/AntoraConventions.java b/buildSrc/src/main/java/org/springframework/boot/build/AntoraConventions.java index d70e636b3cf..c056f4b87dc 100644 --- a/buildSrc/src/main/java/org/springframework/boot/build/AntoraConventions.java +++ b/buildSrc/src/main/java/org/springframework/boot/build/AntoraConventions.java @@ -38,10 +38,8 @@ import org.gradle.api.file.FileCollection; import org.gradle.api.logging.LogLevel; import org.gradle.api.plugins.JavaBasePlugin; import org.gradle.api.plugins.JavaPlugin; -import org.gradle.api.plugins.JavaPluginExtension; import org.gradle.api.provider.Provider; import org.gradle.api.tasks.Copy; -import org.gradle.api.tasks.SourceSet; import org.gradle.api.tasks.TaskContainer; import org.gradle.api.tasks.TaskProvider; import tools.jackson.databind.json.JsonMapper; @@ -105,20 +103,8 @@ public class AntoraConventions { task.getOutputDirectory().set(project.getLayout().getBuildDirectory().dir(task.getName())); }); project.getPlugins().withType(JavaPlugin.class, (java) -> { - String runtimeClasspathConfigurationName = project.getExtensions() - .getByType(JavaPluginExtension.class) - .getSourceSets() - .getByName(SourceSet.MAIN_SOURCE_SET_NAME) - .getRuntimeClasspathConfigurationName(); - Configuration javadocMacros = project.getConfigurations().create("javadocMacros", (configuration) -> { - configuration.extendsFrom(project.getConfigurations().getByName(runtimeClasspathConfigurationName)); - configuration.setDescription( - "Dependencies referenced in javadoc macros. Extends from " + runtimeClasspathConfigurationName); - configuration.setCanBeResolved(true); - configuration.setCanBeDeclared(true); - configuration.setCanBeConsumed(false); - }); - checkAntoraJavadocMacros.configure((macrosTask) -> macrosTask.setClasspath(javadocMacros)); + Configuration implementation = project.getConfigurations().getByName("implementation"); + checkAntoraJavadocMacros.configure((macrosTask) -> macrosTask.setClasspath(implementation)); }); } diff --git a/documentation/spring-boot-docs/build.gradle b/documentation/spring-boot-docs/build.gradle index 90ff17082b7..fe3659c0cc6 100644 --- a/documentation/spring-boot-docs/build.gradle +++ b/documentation/spring-boot-docs/build.gradle @@ -86,239 +86,10 @@ dependencies { dokka(project(":core:spring-boot")) dokka(project(":module:spring-boot-resttestclient")) - implementation(project(":cli:spring-boot-cli")) - implementation(project(":core:spring-boot-docker-compose")) - implementation(project(":core:spring-boot-test")) - implementation(project(":core:spring-boot-test-autoconfigure")) - implementation(project(":core:spring-boot-testcontainers")) - implementation(project(":loader:spring-boot-loader-tools")) - implementation(project(":module:spring-boot-actuator")) - implementation(project(":module:spring-boot-actuator-autoconfigure")) - implementation(project(":module:spring-boot-amqp")) - implementation(project(":module:spring-boot-cache")) - implementation(project(":module:spring-boot-cache-test")) - implementation(project(":module:spring-boot-data-cassandra")) - implementation(project(":module:spring-boot-data-cassandra-test")) - implementation(project(":module:spring-boot-data-couchbase-test")) - implementation(project(":module:spring-boot-data-elasticsearch")) - implementation(project(":module:spring-boot-data-elasticsearch-test")) - implementation(project(":module:spring-boot-data-jpa-test")) - implementation(project(":module:spring-boot-data-ldap-test")) - implementation(project(":module:spring-boot-data-mongodb-test")) - implementation(project(":module:spring-boot-data-neo4j")) - implementation(project(":module:spring-boot-data-neo4j-test")) - implementation(project(":module:spring-boot-data-redis-test")) - implementation(project(":module:spring-boot-devtools")) - implementation(project(":module:spring-boot-graphql-test")) - implementation(project(":module:spring-boot-health")) - implementation(project(":module:spring-boot-hibernate")) - implementation(project(":module:spring-boot-http-codec")) - implementation(project(":module:spring-boot-http-converter")) - implementation(project(":module:spring-boot-integration")) - implementation(project(":module:spring-boot-jackson")) - implementation(project(":module:spring-boot-jdbc")) - implementation(project(":module:spring-boot-jdbc-test")) - implementation(project(":module:spring-boot-jetty")) - implementation(project(":module:spring-boot-jms")) - implementation(project(":module:spring-boot-jooq-test")) - implementation(project(":module:spring-boot-jpa")) - implementation(project(":module:spring-boot-jsonb")) - implementation(project(":module:spring-boot-ldap")) - implementation(project(":module:spring-boot-micrometer-metrics")) - implementation(project(":module:spring-boot-persistence")) - implementation(project(":module:spring-boot-r2dbc")) - implementation(project(":module:spring-boot-reactor-netty")) - implementation(project(":module:spring-boot-restclient")) - implementation(project(":module:spring-boot-restclient-test")) - implementation(project(":module:spring-boot-restdocs")) - implementation(project(":module:spring-boot-resttestclient")) - implementation(project(":module:spring-boot-security")) - implementation(project(":module:spring-boot-tomcat")) - implementation(project(":module:spring-boot-webclient")) - implementation(project(":module:spring-boot-webclient-test")) - implementation(project(":module:spring-boot-webflux")) - implementation(project(":module:spring-boot-webflux-test")) - implementation(project(":module:spring-boot-webmvc")) - implementation(project(":module:spring-boot-webmvc-test")) - implementation(project(":module:spring-boot-webservices")) - implementation(project(":module:spring-boot-webservices-test")) - implementation(project(":module:spring-boot-webtestclient")) - implementation("ch.qos.logback:logback-classic") - implementation("com.redis:testcontainers-redis") - implementation("com.zaxxer:HikariCP") - implementation("io.micrometer:micrometer-jakarta9") - implementation("io.micrometer:micrometer-registry-graphite") - implementation("io.micrometer:micrometer-registry-jmx") - implementation("io.micrometer:micrometer-tracing") implementation("io.opentelemetry.instrumentation:opentelemetry-logback-appender-1.0") - implementation("io.opentelemetry:opentelemetry-exporter-otlp") - implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure") - implementation("io.opentelemetry:opentelemetry-sdk-metrics") - implementation("io.projectreactor.netty:reactor-netty-http") - implementation("jakarta.annotation:jakarta.annotation-api") - implementation("jakarta.jms:jakarta.jms-api") - implementation("jakarta.persistence:jakarta.persistence-api") - implementation("jakarta.servlet:jakarta.servlet-api") - implementation("jakarta.validation:jakarta.validation-api") - implementation("org.apache.commons:commons-dbcp2") - implementation("org.apache.groovy:groovy") - implementation("org.apache.httpcomponents.client5:httpclient5") - implementation("org.apache.kafka:kafka-streams") - implementation("org.apache.logging.log4j:log4j-to-slf4j") - implementation("org.apache.tomcat.embed:tomcat-embed-core") - implementation("org.assertj:assertj-core") - implementation("org.cache2k:cache2k-spring") - implementation("org.glassfish.jersey.containers:jersey-container-servlet") - implementation("org.glassfish.jersey.core:jersey-server") - implementation("org.hibernate.orm:hibernate-jcache") { - exclude group: "javax.activation", module: "javax.activation-api" - exclude group: "javax.persistence", module: "javax.persistence-api" - exclude group: "org.jboss.spec.javax.transaction", module: "jboss-transaction-api_1.2_spec" - } - implementation("org.htmlunit:htmlunit") { - exclude group: "xml-apis", module: "xml-apis" - } - implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8") - implementation("org.jooq:jooq") - implementation("org.junit.jupiter:junit-jupiter") - implementation("org.mockito:mockito-core") - implementation("org.mongodb:mongodb-driver-sync") implementation("org.postgresql:r2dbc-postgresql") - implementation("org.quartz-scheduler:quartz") - implementation("org.slf4j:jul-to-slf4j") - implementation("org.springframework:spring-jdbc") - implementation("org.springframework:spring-jms") - implementation("org.springframework:spring-orm") - implementation("org.springframework:spring-test") - implementation("org.springframework:spring-web") - implementation("org.springframework:spring-webflux") - implementation("org.springframework:spring-webmvc") - implementation("org.springframework:spring-websocket") - implementation("org.springframework.amqp:spring-amqp") - implementation("org.springframework.amqp:spring-rabbit") - implementation("org.springframework.batch:spring-batch-core") - implementation("org.springframework.data:spring-data-couchbase") - implementation("org.springframework.data:spring-data-envers") { - exclude group: "javax.activation", module: "javax.activation-api" - exclude group: "javax.persistence", module: "javax.persistence-api" - exclude group: "org.jboss.spec.javax.transaction", module: "jboss-transaction-api_1.2_spec" - } - implementation("org.springframework.data:spring-data-jpa") - implementation("org.springframework.data:spring-data-ldap") - implementation("org.springframework.data:spring-data-mongodb") - implementation("org.springframework.data:spring-data-r2dbc") - implementation("org.springframework.data:spring-data-redis") - implementation("org.springframework.graphql:spring-graphql") - implementation("org.springframework.graphql:spring-graphql-test") - implementation("org.springframework.kafka:spring-kafka") implementation("org.springframework.kafka:spring-kafka-test") - implementation("org.springframework.pulsar:spring-pulsar") - implementation("org.springframework.restdocs:spring-restdocs-mockmvc") - implementation("org.springframework.restdocs:spring-restdocs-webtestclient") - implementation("org.springframework.security:spring-security-config") - implementation("org.springframework.security:spring-security-oauth2-client") - implementation("org.springframework.security:spring-security-test") - implementation("org.springframework.security:spring-security-web") - implementation("org.springframework.ws:spring-ws-core") - implementation("org.springframework.ws:spring-ws-test") - implementation("org.testcontainers:testcontainers-elasticsearch") implementation("org.testcontainers:testcontainers-junit-jupiter") - implementation("org.testcontainers:testcontainers-mongodb") - implementation("org.testcontainers:testcontainers-neo4j") - implementation("org.yaml:snakeyaml") - - javadocMacros(project(":loader:spring-boot-loader")) - javadocMacros(project(":module:spring-boot-activemq")) - javadocMacros(project(":module:spring-boot-artemis")) - javadocMacros(project(":module:spring-boot-batch")) - javadocMacros(project(":module:spring-boot-batch-jdbc")) - javadocMacros(project(":module:spring-boot-cache-test")) - javadocMacros(project(":module:spring-boot-data-r2dbc-test")) - javadocMacros(project(":module:spring-boot-data-redis")) - javadocMacros(project(":module:spring-boot-data-jdbc-test")) - javadocMacros(project(":module:spring-boot-flyway")) - javadocMacros(project(":module:spring-boot-freemarker")) - javadocMacros(project(":module:spring-boot-gson")) - javadocMacros(project(":module:spring-boot-hazelcast")) - javadocMacros(project(":module:spring-boot-http-codec")) - javadocMacros(project(":module:spring-boot-jackson")) - javadocMacros(project(":module:spring-boot-jackson2")) - javadocMacros(project(":module:spring-boot-jersey")) - javadocMacros(project(":module:spring-boot-jetty")) - javadocMacros(project(":module:spring-boot-kafka")) - javadocMacros(project(":module:spring-boot-liquibase")) - javadocMacros(project(":module:spring-boot-mail")) - javadocMacros(project(":module:spring-boot-micrometer-metrics-test")) - javadocMacros(project(":module:spring-boot-micrometer-tracing-opentelemetry")) - javadocMacros(project(":module:spring-boot-micrometer-tracing-test")) - javadocMacros(project(":module:spring-boot-mustache")) - javadocMacros(project(":module:spring-boot-opentelemetry")) - javadocMacros(project(":module:spring-boot-pulsar")) - javadocMacros(project(":module:spring-boot-quartz")) - javadocMacros(project(":module:spring-boot-rsocket")) - javadocMacros(project(":module:spring-boot-security-oauth2-client")) - javadocMacros(project(":module:spring-boot-security-saml2")) - javadocMacros(project(":module:spring-boot-servlet")) - javadocMacros(project(":module:spring-boot-tomcat")) - javadocMacros(project(":module:spring-boot-validation")) - javadocMacros(project(":module:spring-boot-web-server")) - javadocMacros(project(":module:spring-boot-webflux-test")) - javadocMacros(project(":module:spring-boot-webtestclient")) - javadocMacros(project(":module:spring-boot-zipkin")) - javadocMacros("co.elastic.clients:elasticsearch-rest5-client") - javadocMacros("com.h2database:h2") - javadocMacros("com.hazelcast:hazelcast-spring") - javadocMacros("com.redis:testcontainers-redis") - javadocMacros("io.lettuce:lettuce-core") - javadocMacros("io.micrometer:micrometer-registry-new-relic") - javadocMacros("io.micrometer:micrometer-registry-otlp") - javadocMacros("io.opentelemetry:opentelemetry-sdk-logs") - javadocMacros("io.opentelemetry:opentelemetry-sdk-metrics") - javadocMacros("io.opentelemetry:opentelemetry-sdk-trace") - javadocMacros("io.prometheus:prometheus-metrics-tracer-common") - javadocMacros("io.prometheus:simpleclient_tracer_common") - javadocMacros("io.rsocket:rsocket-core") - javadocMacros("jakarta.json.bind:jakarta.json.bind-api") - javadocMacros("jakarta.mail:jakarta.mail-api") - javadocMacros("jakarta.websocket:jakarta.websocket-api") - javadocMacros("org.apache.activemq:artemis-jakarta-server") - javadocMacros("org.apache.logging.log4j:log4j-core") - javadocMacros("org.eclipse.jetty:jetty-client") - javadocMacros("org.infinispan:infinispan-core") - javadocMacros("org.liquibase:liquibase-core") - javadocMacros("org.messaginghub:pooled-jms") - javadocMacros("org.neo4j.driver:neo4j-java-driver-observation-micrometer") - javadocMacros("org.postgresql:postgresql") - javadocMacros("org.projectlombok:lombok") - javadocMacros("org.seleniumhq.selenium:selenium-api") - javadocMacros("org.springframework.amqp:spring-rabbit-stream") - javadocMacros("org.springframework.data:spring-data-rest-webmvc") - javadocMacros("org.springframework.hateoas:spring-hateoas") - javadocMacros("org.springframework.integration:spring-integration-core") - javadocMacros("org.springframework.integration:spring-integration-rsocket") - javadocMacros("org.springframework.security:spring-security-oauth2-authorization-server") - javadocMacros("org.springframework.security:spring-security-oauth2-resource-server") - javadocMacros("org.springframework.session:spring-session-core") - javadocMacros("org.testcontainers:testcontainers-activemq") - javadocMacros("org.testcontainers:testcontainers-cassandra") - javadocMacros("org.testcontainers:testcontainers-clickhouse") - javadocMacros("org.testcontainers:testcontainers-couchbase") - javadocMacros("org.testcontainers:testcontainers-elasticsearch") - javadocMacros("org.testcontainers:testcontainers-grafana") - javadocMacros("org.testcontainers:testcontainers-jdbc") - javadocMacros("org.testcontainers:testcontainers-kafka") - javadocMacros("org.testcontainers:testcontainers-ldap") - javadocMacros("org.testcontainers:testcontainers-mariadb") - javadocMacros("org.testcontainers:testcontainers-mssqlserver") - javadocMacros("org.testcontainers:testcontainers-mysql") - javadocMacros("org.testcontainers:testcontainers-oracle-free") - javadocMacros("org.testcontainers:testcontainers-oracle-xe") - javadocMacros("org.testcontainers:testcontainers-postgresql") - javadocMacros("org.testcontainers:testcontainers-pulsar") - javadocMacros("org.testcontainers:testcontainers-rabbitmq") - javadocMacros("org.testcontainers:testcontainers-redpanda") - javadocMacros("org.thymeleaf:thymeleaf-spring6") - javadocMacros("tools.jackson.dataformat:jackson-dataformat-xml") remoteSpringApplicationExample(platform(project(":platform:spring-boot-dependencies"))) remoteSpringApplicationExample(project(":module:spring-boot-devtools")) @@ -372,6 +143,8 @@ configurations { attribute(Usage.USAGE_ATTRIBUTE, objects.named(Usage, Usage.JAVA_RUNTIME)) } extendsFrom configurations.javadoc + } + configureEach { resolutionStrategy { capabilitiesResolution { withCapability("org.lz4:lz4-java") { @@ -417,8 +190,10 @@ project.rootProject.gradle.projectsEvaluated { .findAll { !it.name.startsWith('spring-boot-starter') } .each { javadocProject -> dependencies { + implementation(project(javadocProject.path)) javadoc(project(javadocProject.path)) if (javadocProject.plugins.hasPlugin(OptionalDependenciesPlugin)) { + implementation(project(path: javadocProject.path, configuration: 'optional')) javadoc(project(path: javadocProject.path, configuration: 'optional')) } }