Make sure that generateAntoraYml runs when attributes have changed
Closes gh-42300
This commit is contained in:
		
							parent
							
								
									5666c981fc
								
							
						
					
					
						commit
						988e083fef
					
				| 
						 | 
				
			
			@ -37,6 +37,7 @@ import org.gradle.StartParameter;
 | 
			
		|||
import org.gradle.api.Project;
 | 
			
		||||
import org.gradle.api.logging.LogLevel;
 | 
			
		||||
import org.gradle.api.plugins.JavaBasePlugin;
 | 
			
		||||
import org.gradle.api.provider.Provider;
 | 
			
		||||
import org.gradle.api.tasks.Copy;
 | 
			
		||||
import org.gradle.api.tasks.TaskContainer;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -118,8 +119,7 @@ public class AntoraConventions {
 | 
			
		|||
		generateAntoraYmlTask.setProperty("outputFile",
 | 
			
		||||
				new File(project.getBuildDir(), "generated/docs/antora-yml/antora.yml"));
 | 
			
		||||
		generateAntoraYmlTask.setProperty("yml", getDefaultYml(project));
 | 
			
		||||
		generateAntoraYmlTask.doFirst((task) -> generateAntoraYmlTask.getAsciidocAttributes()
 | 
			
		||||
			.putAll(project.provider(() -> getAsciidocAttributes(project, dependencyVersionsTask))));
 | 
			
		||||
		generateAntoraYmlTask.getAsciidocAttributes().putAll(getAsciidocAttributes(project, dependencyVersionsTask));
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private Map<String, ?> getDefaultYml(Project project) {
 | 
			
		||||
| 
						 | 
				
			
			@ -138,12 +138,14 @@ public class AntoraConventions {
 | 
			
		|||
		return defaultYml;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private Map<String, String> getAsciidocAttributes(Project project,
 | 
			
		||||
	private Provider<Map<String, String>> getAsciidocAttributes(Project project,
 | 
			
		||||
			ExtractVersionConstraints dependencyVersionsTask) {
 | 
			
		||||
		BomExtension bom = (BomExtension) project.project(DEPENDENCIES_PATH).getExtensions().getByName("bom");
 | 
			
		||||
		Map<String, String> dependencyVersions = dependencyVersionsTask.getVersionConstraints();
 | 
			
		||||
		AntoraAsciidocAttributes attributes = new AntoraAsciidocAttributes(project, bom, dependencyVersions);
 | 
			
		||||
		return attributes.get();
 | 
			
		||||
		return project.provider(() -> {
 | 
			
		||||
			BomExtension bom = (BomExtension) project.project(DEPENDENCIES_PATH).getExtensions().getByName("bom");
 | 
			
		||||
			Map<String, String> dependencyVersions = dependencyVersionsTask.getVersionConstraints();
 | 
			
		||||
			AntoraAsciidocAttributes attributes = new AntoraAsciidocAttributes(project, bom, dependencyVersions);
 | 
			
		||||
			return attributes.get();
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	private void configureAntoraTask(Project project, AntoraTask antoraTask, NpmInstallTask npmInstallTask,
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue