Configure the bootBuildInfo task lazily

Prior to this commit, the bootBuildInfo was configured eagerly.
Configuring it lazily prevent this task from being configured when not
explicitly needed. Also, the 'classes' and 'bootJar' tasks are now
lazily configured, as the bootBuildInfo task was causing them to be
configured eagerly.

See gh-23435
This commit is contained in:
Lukas Cardot 2020-09-21 13:53:08 +02:00 committed by Andy Wilkinson
parent ad6de10f14
commit e95bcfac34
1 changed files with 5 additions and 5 deletions

View File

@ -96,16 +96,16 @@ public class SpringBootExtension {
TaskProvider<BuildInfo> bootBuildInfo = tasks.register("bootBuildInfo", BuildInfo.class,
this::configureBuildInfoTask);
this.project.getPlugins().withType(JavaPlugin.class, (plugin) -> {
tasks.getByName(JavaPlugin.CLASSES_TASK_NAME).dependsOn(bootBuildInfo.get());
this.project.afterEvaluate((evaluated) -> {
BuildInfoProperties properties = bootBuildInfo.get().getProperties();
tasks.named(JavaPlugin.CLASSES_TASK_NAME).configure((task) -> task.dependsOn(bootBuildInfo));
this.project.afterEvaluate((evaluated) -> bootBuildInfo.configure((buildInfo) -> {
BuildInfoProperties properties = buildInfo.getProperties();
if (properties.getArtifact() == null) {
properties.setArtifact(determineArtifactBaseName());
}
});
}));
});
if (configurer != null) {
configurer.execute(bootBuildInfo.get());
bootBuildInfo.configure(configurer);
}
}