3535import org .antora .gradle .AntoraTask ;
3636import org .gradle .StartParameter ;
3737import org .gradle .api .Project ;
38+ import org .gradle .api .artifacts .Configuration ;
3839import org .gradle .api .file .Directory ;
40+ import org .gradle .api .file .FileCollection ;
3941import org .gradle .api .logging .LogLevel ;
4042import org .gradle .api .plugins .JavaBasePlugin ;
4143import org .gradle .api .provider .Provider ;
4648import org .springframework .boot .build .antora .AntoraAsciidocAttributes ;
4749import org .springframework .boot .build .antora .GenerateAntoraPlaybook ;
4850import org .springframework .boot .build .bom .BomExtension ;
49- import org .springframework .boot .build .constraints . ExtractVersionConstraints ;
51+ import org .springframework .boot .build .bom . ResolvedBom ;
5052import org .springframework .util .Assert ;
5153import org .springframework .util .StringUtils ;
5254
@@ -76,7 +78,10 @@ void apply(Project project) {
7678 }
7779
7880 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" )));
8085 project .getPlugins ().apply (GenerateAntoraYmlPlugin .class );
8186 TaskContainer tasks = project .getTasks ();
8287 TaskProvider <GenerateAntoraPlaybook > generateAntoraPlaybookTask = tasks .register (
@@ -86,8 +91,8 @@ private void apply(Project project, AntoraPlugin antoraPlugin) {
8691 (task ) -> configureCopyAntoraPackageJsonTask (project , task ));
8792 TaskProvider <NpmInstallTask > npmInstallTask = tasks .register ("antoraNpmInstall" , NpmInstallTask .class ,
8893 (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 ));
9196 tasks .withType (AntoraTask .class ,
9297 (antoraTask ) -> configureAntoraTask (project , antoraTask , npmInstallTask , generateAntoraPlaybookTask ));
9398 project .getExtensions ()
@@ -118,21 +123,15 @@ private void configureNpmInstallTask(Project project, NpmInstallTask npmInstallT
118123 npmInstallTask .getNpmCommand ().set (List .of ("ci" , "--silent" , "--no-progress" ));
119124 }
120125
121- private TaskProvider <ExtractVersionConstraints > addDependencyVersionsTask (Project project ) {
122- return project .getTasks ()
123- .register ("dependencyVersions" , ExtractVersionConstraints .class ,
124- (task ) -> task .enforcedPlatform (DEPENDENCIES_PATH ));
125- }
126-
127126 private void configureGenerateAntoraYmlTask (Project project , GenerateAntoraYmlTask generateAntoraYmlTask ,
128- TaskProvider < ExtractVersionConstraints > dependencyVersionsTask ) {
127+ Configuration resolvedBom ) {
129128 generateAntoraYmlTask .getOutputs ().doNotCacheIf ("getAsciidocAttributes() changes output" , (task ) -> true );
130- generateAntoraYmlTask .dependsOn (dependencyVersionsTask );
129+ generateAntoraYmlTask .dependsOn (resolvedBom );
131130 generateAntoraYmlTask .setProperty ("componentName" , "boot" );
132131 generateAntoraYmlTask .setProperty ("outputFile" ,
133132 project .getLayout ().getBuildDirectory ().file ("generated/docs/antora-yml/antora.yml" ));
134133 generateAntoraYmlTask .setProperty ("yml" , getDefaultYml (project ));
135- generateAntoraYmlTask .getAsciidocAttributes ().putAll (getAsciidocAttributes (project , dependencyVersionsTask ));
134+ generateAntoraYmlTask .getAsciidocAttributes ().putAll (getAsciidocAttributes (project , resolvedBom ));
136135 }
137136
138137 private Map <String , ?> getDefaultYml (Project project ) {
@@ -151,11 +150,11 @@ private void configureGenerateAntoraYmlTask(Project project, GenerateAntoraYmlTa
151150 return defaultYml ;
152151 }
153152
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 (() -> {
157155 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 ();
159158 });
160159 }
161160
0 commit comments