35
35
import org .antora .gradle .AntoraTask ;
36
36
import org .gradle .StartParameter ;
37
37
import org .gradle .api .Project ;
38
+ import org .gradle .api .artifacts .Configuration ;
38
39
import org .gradle .api .file .Directory ;
40
+ import org .gradle .api .file .FileCollection ;
39
41
import org .gradle .api .logging .LogLevel ;
40
42
import org .gradle .api .plugins .JavaBasePlugin ;
41
43
import org .gradle .api .provider .Provider ;
46
48
import org .springframework .boot .build .antora .AntoraAsciidocAttributes ;
47
49
import org .springframework .boot .build .antora .GenerateAntoraPlaybook ;
48
50
import org .springframework .boot .build .bom .BomExtension ;
49
- import org .springframework .boot .build .constraints . ExtractVersionConstraints ;
51
+ import org .springframework .boot .build .bom . ResolvedBom ;
50
52
import org .springframework .util .Assert ;
51
53
import org .springframework .util .StringUtils ;
52
54
@@ -76,7 +78,10 @@ void apply(Project project) {
76
78
}
77
79
78
80
private void apply (Project project , AntoraPlugin antoraPlugin ) {
79
- TaskProvider <ExtractVersionConstraints > dependencyVersionsTask = addDependencyVersionsTask (project );
81
+ Configuration resolvedBom = project .getConfigurations ().create ("resolveBom" );
82
+ project .getDependencies ()
83
+ .add (resolvedBom .getName (), project .getDependencies ()
84
+ .project (Map .of ("path" , DEPENDENCIES_PATH , "configuration" , "resolvedBom" )));
80
85
project .getPlugins ().apply (GenerateAntoraYmlPlugin .class );
81
86
TaskContainer tasks = project .getTasks ();
82
87
TaskProvider <GenerateAntoraPlaybook > generateAntoraPlaybookTask = tasks .register (
@@ -86,8 +91,8 @@ private void apply(Project project, AntoraPlugin antoraPlugin) {
86
91
(task ) -> configureCopyAntoraPackageJsonTask (project , task ));
87
92
TaskProvider <NpmInstallTask > npmInstallTask = tasks .register ("antoraNpmInstall" , NpmInstallTask .class ,
88
93
(task ) -> configureNpmInstallTask (project , task , copyAntoraPackageJsonTask ));
89
- tasks .withType (GenerateAntoraYmlTask .class , ( generateAntoraYmlTask ) -> configureGenerateAntoraYmlTask ( project ,
90
- generateAntoraYmlTask , dependencyVersionsTask ));
94
+ tasks .withType (GenerateAntoraYmlTask .class ,
95
+ ( generateAntoraYmlTask ) -> configureGenerateAntoraYmlTask ( project , generateAntoraYmlTask , resolvedBom ));
91
96
tasks .withType (AntoraTask .class ,
92
97
(antoraTask ) -> configureAntoraTask (project , antoraTask , npmInstallTask , generateAntoraPlaybookTask ));
93
98
project .getExtensions ()
@@ -118,21 +123,15 @@ private void configureNpmInstallTask(Project project, NpmInstallTask npmInstallT
118
123
npmInstallTask .getNpmCommand ().set (List .of ("ci" , "--silent" , "--no-progress" ));
119
124
}
120
125
121
- private TaskProvider <ExtractVersionConstraints > addDependencyVersionsTask (Project project ) {
122
- return project .getTasks ()
123
- .register ("dependencyVersions" , ExtractVersionConstraints .class ,
124
- (task ) -> task .enforcedPlatform (DEPENDENCIES_PATH ));
125
- }
126
-
127
126
private void configureGenerateAntoraYmlTask (Project project , GenerateAntoraYmlTask generateAntoraYmlTask ,
128
- TaskProvider < ExtractVersionConstraints > dependencyVersionsTask ) {
127
+ Configuration resolvedBom ) {
129
128
generateAntoraYmlTask .getOutputs ().doNotCacheIf ("getAsciidocAttributes() changes output" , (task ) -> true );
130
- generateAntoraYmlTask .dependsOn (dependencyVersionsTask );
129
+ generateAntoraYmlTask .dependsOn (resolvedBom );
131
130
generateAntoraYmlTask .setProperty ("componentName" , "boot" );
132
131
generateAntoraYmlTask .setProperty ("outputFile" ,
133
132
project .getLayout ().getBuildDirectory ().file ("generated/docs/antora-yml/antora.yml" ));
134
133
generateAntoraYmlTask .setProperty ("yml" , getDefaultYml (project ));
135
- generateAntoraYmlTask .getAsciidocAttributes ().putAll (getAsciidocAttributes (project , dependencyVersionsTask ));
134
+ generateAntoraYmlTask .getAsciidocAttributes ().putAll (getAsciidocAttributes (project , resolvedBom ));
136
135
}
137
136
138
137
private Map <String , ?> getDefaultYml (Project project ) {
@@ -151,11 +150,11 @@ private void configureGenerateAntoraYmlTask(Project project, GenerateAntoraYmlTa
151
150
return defaultYml ;
152
151
}
153
152
154
- private Provider <Map <String , String >> getAsciidocAttributes (Project project ,
155
- TaskProvider <ExtractVersionConstraints > dependencyVersionsTask ) {
156
- return dependencyVersionsTask .map ((task ) -> task .getVersionConstraints ()).map ((constraints ) -> {
153
+ private Provider <Map <String , String >> getAsciidocAttributes (Project project , FileCollection resolvedBoms ) {
154
+ return project .provider (() -> {
157
155
BomExtension bom = (BomExtension ) project .project (DEPENDENCIES_PATH ).getExtensions ().getByName ("bom" );
158
- return new AntoraAsciidocAttributes (project , bom , constraints ).get ();
156
+ ResolvedBom resolvedBom = ResolvedBom .readFrom (resolvedBoms .getSingleFile ());
157
+ return new AntoraAsciidocAttributes (project , bom , resolvedBom ).get ();
159
158
});
160
159
}
161
160
0 commit comments