Skip to content

Commit 988e083

Browse files
committed
Make sure that generateAntoraYml runs when attributes have changed
Closes gh-42300
1 parent 5666c98 commit 988e083

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

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

+9-7
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import org.gradle.api.Project;
3838
import org.gradle.api.logging.LogLevel;
3939
import org.gradle.api.plugins.JavaBasePlugin;
40+
import org.gradle.api.provider.Provider;
4041
import org.gradle.api.tasks.Copy;
4142
import org.gradle.api.tasks.TaskContainer;
4243

@@ -118,8 +119,7 @@ private void configureGenerateAntoraYmlTask(Project project, GenerateAntoraYmlTa
118119
generateAntoraYmlTask.setProperty("outputFile",
119120
new File(project.getBuildDir(), "generated/docs/antora-yml/antora.yml"));
120121
generateAntoraYmlTask.setProperty("yml", getDefaultYml(project));
121-
generateAntoraYmlTask.doFirst((task) -> generateAntoraYmlTask.getAsciidocAttributes()
122-
.putAll(project.provider(() -> getAsciidocAttributes(project, dependencyVersionsTask))));
122+
generateAntoraYmlTask.getAsciidocAttributes().putAll(getAsciidocAttributes(project, dependencyVersionsTask));
123123
}
124124

125125
private Map<String, ?> getDefaultYml(Project project) {
@@ -138,12 +138,14 @@ private void configureGenerateAntoraYmlTask(Project project, GenerateAntoraYmlTa
138138
return defaultYml;
139139
}
140140

141-
private Map<String, String> getAsciidocAttributes(Project project,
141+
private Provider<Map<String, String>> getAsciidocAttributes(Project project,
142142
ExtractVersionConstraints dependencyVersionsTask) {
143-
BomExtension bom = (BomExtension) project.project(DEPENDENCIES_PATH).getExtensions().getByName("bom");
144-
Map<String, String> dependencyVersions = dependencyVersionsTask.getVersionConstraints();
145-
AntoraAsciidocAttributes attributes = new AntoraAsciidocAttributes(project, bom, dependencyVersions);
146-
return attributes.get();
143+
return project.provider(() -> {
144+
BomExtension bom = (BomExtension) project.project(DEPENDENCIES_PATH).getExtensions().getByName("bom");
145+
Map<String, String> dependencyVersions = dependencyVersionsTask.getVersionConstraints();
146+
AntoraAsciidocAttributes attributes = new AntoraAsciidocAttributes(project, bom, dependencyVersions);
147+
return attributes.get();
148+
});
147149
}
148150

149151
private void configureAntoraTask(Project project, AntoraTask antoraTask, NpmInstallTask npmInstallTask,

0 commit comments

Comments
 (0)