Skip to content

Commit a1c5fcc

Browse files
committed
Move common Asciidoctor configuration into our conventions
Closes gh-26620
1 parent 8ce7a2b commit a1c5fcc

File tree

4 files changed

+25
-36
lines changed

4 files changed

+25
-36
lines changed

buildSrc/src/main/java/org/springframework/boot/build/AsciidoctorConventions.java

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,15 @@
4646
* the plugin is applied:
4747
*
4848
* <ul>
49+
* <li>The {@code https://repo.spring.io/release} Maven repository is configured and
50+
* limited to dependencies in the following groups:
51+
* <ul>
52+
* <li>{@code io.spring.asciidoctor}
53+
* <li>{@code io.spring.docresources}
54+
* </ul>
4955
* <li>All warnings are made fatal.
5056
* <li>The version of AsciidoctorJ is upgraded to 2.4.1.
57+
* <li>An {@code asciidoctorExtensions} configuration is created.
5158
* <li>A task is created to resolve and unzip our documentation resources (CSS and
5259
* Javascript).
5360
* <li>For each {@link AsciidoctorTask} (HTML only):
@@ -64,6 +71,7 @@
6471
* the current version, etc.
6572
* <li>{@link AbstractAsciidoctorTask#baseDirFollowsSourceDir() baseDirFollowsSourceDir()}
6673
* is enabled.
74+
* <li>{@code asciidoctorExtensions} is added to the task's configurations.
6775
* </ul>
6876
* </ul>
6977
*
@@ -73,16 +81,20 @@ class AsciidoctorConventions {
7381

7482
private static final String ASCIIDOCTORJ_VERSION = "2.4.1";
7583

84+
private static final String EXTENSIONS_CONFIGURATION_NAME = "asciidoctorExtensions";
85+
7686
void apply(Project project) {
7787
project.getPlugins().withType(AsciidoctorJPlugin.class, (asciidoctorPlugin) -> {
78-
configureDocResourcesRepository(project);
88+
configureDocumentationDependenciesRepository(project);
7989
makeAllWarningsFatal(project);
8090
upgradeAsciidoctorJVersion(project);
91+
Configuration asciidoctorExtensions = createAsciidoctorExtensionsConfiguration(project);
8192
UnzipDocumentationResources unzipResources = createUnzipDocumentationResourcesTask(project);
8293
project.getTasks().withType(AbstractAsciidoctorTask.class, (asciidoctorTask) -> {
8394
configureCommonAttributes(project, asciidoctorTask);
8495
configureOptions(asciidoctorTask);
8596
asciidoctorTask.baseDirFollowsSourceDir();
97+
asciidoctorTask.configurations(asciidoctorExtensions);
8698
Sync syncSource = createSyncDocumentationSourceTask(project, asciidoctorTask);
8799
if (asciidoctorTask instanceof AsciidoctorTask) {
88100
configureHtmlOnlyAttributes(asciidoctorTask);
@@ -104,10 +116,13 @@ public void execute(Task task) {
104116
});
105117
}
106118

107-
private void configureDocResourcesRepository(Project project) {
119+
private void configureDocumentationDependenciesRepository(Project project) {
108120
project.getRepositories().maven((mavenRepo) -> {
109121
mavenRepo.setUrl(URI.create("https://repo.spring.io/release"));
110-
mavenRepo.mavenContent((mavenContent) -> mavenContent.includeGroup("io.spring.docresources"));
122+
mavenRepo.mavenContent((mavenContent) -> {
123+
mavenContent.includeGroup("io.spring.asciidoctor");
124+
mavenContent.includeGroup("io.spring.docresources");
125+
});
111126
});
112127
}
113128

@@ -119,6 +134,13 @@ private void upgradeAsciidoctorJVersion(Project project) {
119134
project.getExtensions().getByType(AsciidoctorJExtension.class).setVersion(ASCIIDOCTORJ_VERSION);
120135
}
121136

137+
private Configuration createAsciidoctorExtensionsConfiguration(Project project) {
138+
return project.getConfigurations().create(EXTENSIONS_CONFIGURATION_NAME,
139+
(configuration) -> project.getConfigurations()
140+
.matching((candidate) -> "dependencyManagement".equals(candidate.getName()))
141+
.all((dependencyManagement) -> configuration.extendsFrom(dependencyManagement)));
142+
}
143+
122144
private UnzipDocumentationResources createUnzipDocumentationResourcesTask(Project project) {
123145
Configuration documentationResources = project.getConfigurations().maybeCreate("documentationResources");
124146
documentationResources.getDependencies()

spring-boot-project/spring-boot-actuator-autoconfigure/build.gradle

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,6 @@ plugins {
1111
description = "Spring Boot Actuator AutoConfigure"
1212

1313
configurations {
14-
asciidoctorExtensions {
15-
extendsFrom dependencyManagement
16-
}
1714
documentation
1815
}
1916

@@ -158,7 +155,6 @@ task dependencyVersions(type: org.springframework.boot.build.constraints.Extract
158155

159156
tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) {
160157
dependsOn dependencyVersions
161-
baseDirFollowsSourceDir()
162158
doFirst {
163159
def versionConstraints = dependencyVersions.versionConstraints
164160
def integrationVersion = versionConstraints["org.springframework.integration:spring-integration-core"]
@@ -170,14 +166,12 @@ tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) {
170166
}
171167

172168
asciidoctor {
173-
configurations "asciidoctorExtensions"
174169
sources {
175170
include "index.adoc"
176171
}
177172
}
178173

179174
asciidoctorPdf {
180-
configurations "asciidoctorExtensions"
181175
sources {
182176
include "index.adoc"
183177
}

spring-boot-project/spring-boot-docs/build.gradle

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -10,25 +10,13 @@ description = "Spring Boot Docs"
1010

1111
configurations {
1212
actuatorApiDocumentation
13-
asciidoctorExtensions {
14-
extendsFrom dependencyManagement
15-
}
1613
autoConfiguration
1714
configurationProperties
1815
gradlePluginDocumentation
1916
mavenPluginDocumentation
2017
testSlices
2118
}
2219

23-
repositories {
24-
maven {
25-
url "https://repo.spring.io/release"
26-
mavenContent {
27-
includeGroup "io.spring.asciidoctor"
28-
}
29-
}
30-
}
31-
3220
jar {
3321
enabled = false
3422
}
@@ -187,8 +175,6 @@ task documentConfigurationProperties(type: org.springframework.boot.build.contex
187175

188176
tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) {
189177
dependsOn dependencyVersions
190-
configurations "asciidoctorExtensions"
191-
baseDirFollowsSourceDir()
192178
asciidoctorj {
193179
fatalWarnings = ['^((?!successfully validated).)*$']
194180
}

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/build.gradle

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -15,21 +15,9 @@ toolchain {
1515
}
1616

1717
configurations {
18-
asciidoctorExtensions {
19-
extendsFrom dependencyManagement
20-
}
2118
documentation
2219
}
2320

24-
repositories {
25-
maven {
26-
url "https://repo.spring.io/release"
27-
mavenContent {
28-
includeGroup "io.spring.asciidoctor"
29-
}
30-
}
31-
}
32-
3321
dependencies {
3422
asciidoctorExtensions("io.spring.asciidoctor:spring-asciidoctor-extensions-block-switch")
3523

@@ -85,7 +73,6 @@ tasks.withType(org.asciidoctor.gradle.jvm.AbstractAsciidoctorTask) {
8573
}
8674

8775
asciidoctor {
88-
configurations "asciidoctorExtensions"
8976
sources {
9077
include "index.adoc"
9178
}

0 commit comments

Comments
 (0)