Make bootBuildImage produce native image when NBT plugin is applied

Closes gh-32768
This commit is contained in:
Andy Wilkinson
2022-10-18 13:12:45 +01:00
parent 2c756ea874
commit 2dacddb4d7
5 changed files with 33 additions and 2 deletions

View File

@@ -28,6 +28,7 @@ import org.gradle.api.plugins.JavaPluginExtension;
import org.gradle.api.tasks.SourceSetContainer;
import org.gradle.api.tasks.SourceSetOutput;
import org.springframework.boot.gradle.tasks.bundling.BootBuildImage;
import org.springframework.boot.gradle.tasks.bundling.BootJar;
/**
@@ -58,6 +59,7 @@ class NativeImagePluginAction implements PluginApplicationAction {
SpringBootAotPlugin.AOT_TEST_SOURCE_SET_NAME);
configureGraalVmReachabilityExtension(graalVmExtension);
copyReachabilityMetadataToBootJar(project);
configureBootBuildImageToProduceANativeImage(project);
});
}
@@ -84,4 +86,12 @@ class NativeImagePluginAction implements PluginApplicationAction {
.configure((bootJar) -> bootJar.from(project.getTasks().named("collectReachabilityMetadata")));
}
private void configureBootBuildImageToProduceANativeImage(Project project) {
project.getTasks().named(SpringBootPlugin.BOOT_BUILD_IMAGE_TASK_NAME, BootBuildImage.class)
.configure((bootBuildImage) -> {
bootBuildImage.setBuilder("paketobuildpacks/builder:tiny");
bootBuildImage.environment("BP_NATIVE_IMAGE", "true");
});
}
}