24
24
import org .graalvm .buildtools .gradle .dsl .GraalVMExtension ;
25
25
import org .graalvm .buildtools .gradle .dsl .GraalVMReachabilityMetadataRepositoryExtension ;
26
26
import org .graalvm .buildtools .gradle .dsl .NativeImageOptions ;
27
- import org .graalvm .buildtools .gradle .tasks .BuildNativeImageTask ;
28
27
import org .gradle .api .Action ;
29
28
import org .gradle .api .Plugin ;
30
29
import org .gradle .api .Project ;
33
32
import org .gradle .api .plugins .JavaPlugin ;
34
33
import org .gradle .api .plugins .JavaPluginExtension ;
35
34
import org .gradle .api .provider .Property ;
36
- import org .gradle .api .tasks .SourceSet ;
37
35
import org .gradle .api .tasks .SourceSetContainer ;
36
+ import org .gradle .api .tasks .SourceSetOutput ;
38
37
39
38
import org .springframework .boot .gradle .tasks .bundling .BootJar ;
40
39
@@ -59,19 +58,20 @@ public void execute(Project project) {
59
58
project .getPlugins ().withType (JavaPlugin .class ).all ((plugin ) -> {
60
59
JavaPluginExtension javaPluginExtension = project .getExtensions ().getByType (JavaPluginExtension .class );
61
60
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 ));
66
61
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 );
67
66
configureGraalVmReachabilityExtension (graalVmExtension );
68
67
copyReachabilityMetadataToBootJar (project , graalVmExtension );
69
68
});
70
69
}
71
70
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 );
75
75
}
76
76
77
77
private GraalVMExtension configureGraalVmExtension (Project project ) {
0 commit comments