Skip to content

Commit 4a80b36

Browse files
committed
Configure native image classpath outside of task realisation
Closes gh-32465
1 parent 4e8f035 commit 4a80b36

File tree

1 file changed

+9
-9
lines changed
  • spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin

1 file changed

+9
-9
lines changed

spring-boot-project/spring-boot-tools/spring-boot-gradle-plugin/src/main/java/org/springframework/boot/gradle/plugin/NativeImagePluginAction.java

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.graalvm.buildtools.gradle.dsl.GraalVMExtension;
2525
import org.graalvm.buildtools.gradle.dsl.GraalVMReachabilityMetadataRepositoryExtension;
2626
import org.graalvm.buildtools.gradle.dsl.NativeImageOptions;
27-
import org.graalvm.buildtools.gradle.tasks.BuildNativeImageTask;
2827
import org.gradle.api.Action;
2928
import org.gradle.api.Plugin;
3029
import org.gradle.api.Project;
@@ -33,8 +32,8 @@
3332
import org.gradle.api.plugins.JavaPlugin;
3433
import org.gradle.api.plugins.JavaPluginExtension;
3534
import org.gradle.api.provider.Property;
36-
import org.gradle.api.tasks.SourceSet;
3735
import org.gradle.api.tasks.SourceSetContainer;
36+
import org.gradle.api.tasks.SourceSetOutput;
3837

3938
import org.springframework.boot.gradle.tasks.bundling.BootJar;
4039

@@ -59,19 +58,20 @@ public void execute(Project project) {
5958
project.getPlugins().withType(JavaPlugin.class).all((plugin) -> {
6059
JavaPluginExtension javaPluginExtension = project.getExtensions().getByType(JavaPluginExtension.class);
6160
SourceSetContainer sourceSets = javaPluginExtension.getSourceSets();
62-
configureTaskClasspath(project, NativeImagePlugin.NATIVE_COMPILE_TASK_NAME,
63-
sourceSets.getByName(SpringBootAotPlugin.AOT_SOURCE_SET_NAME));
64-
configureTaskClasspath(project, NativeImagePlugin.NATIVE_TEST_COMPILE_TASK_NAME,
65-
sourceSets.getByName(SpringBootAotPlugin.AOT_TEST_SOURCE_SET_NAME));
6661
GraalVMExtension graalVmExtension = configureGraalVmExtension(project);
62+
configureNativeBinaryClasspath(sourceSets, graalVmExtension, NativeImagePlugin.NATIVE_MAIN_EXTENSION,
63+
SpringBootAotPlugin.AOT_SOURCE_SET_NAME);
64+
configureNativeBinaryClasspath(sourceSets, graalVmExtension, NativeImagePlugin.NATIVE_TEST_EXTENSION,
65+
SpringBootAotPlugin.AOT_TEST_SOURCE_SET_NAME);
6766
configureGraalVmReachabilityExtension(graalVmExtension);
6867
copyReachabilityMetadataToBootJar(project, graalVmExtension);
6968
});
7069
}
7170

72-
private void configureTaskClasspath(Project project, String taskName, SourceSet sourceSet) {
73-
project.getTasks().named(taskName, BuildNativeImageTask.class,
74-
(nativeCompile) -> nativeCompile.getOptions().get().classpath(sourceSet.getOutput()));
71+
private void configureNativeBinaryClasspath(SourceSetContainer sourceSets, GraalVMExtension graalVmExtension,
72+
String binaryName, String sourceSetName) {
73+
SourceSetOutput output = sourceSets.getByName(sourceSetName).getOutput();
74+
graalVmExtension.getBinaries().getByName(binaryName).classpath(output);
7575
}
7676

7777
private GraalVMExtension configureGraalVmExtension(Project project) {

0 commit comments

Comments
 (0)