added Gradle toolchain support to NativeImageConfigurationTask

This commit is contained in:
2023-10-20 20:58:57 +08:00
parent b1757a85be
commit e1028249ae
2 changed files with 12 additions and 1 deletions

View File

@@ -4,13 +4,18 @@ import org.gradle.api.artifacts.Configuration;
import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.file.DirectoryProperty;
import org.gradle.api.file.ProjectLayout;
import org.gradle.api.plugins.ExtensionContainer;
import org.gradle.api.plugins.JavaApplication;
import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.plugins.JavaPluginExtension;
import org.gradle.api.provider.Property;
import org.gradle.api.provider.Provider;
import org.gradle.api.tasks.JavaExec;
import org.gradle.api.tasks.OutputDirectory;
import org.gradle.api.tasks.TaskContainer;
import org.gradle.api.tasks.bundling.Jar;
import org.gradle.jvm.toolchain.JavaLauncher;
import org.gradle.jvm.toolchain.JavaToolchainService;
import java.util.ArrayList;
import java.util.Collections;
@@ -33,6 +38,12 @@ public abstract class NativeImageConfigurationTask extends JavaExec {
ProjectLayout layout = getProject().getLayout();
TaskContainer taskContainer = getProject().getTasks();
JavaApplication javaApplication = getProject().getExtensions().findByType(JavaApplication.class);
JavaPluginExtension javaExtension = getProject().getExtensions().getByType(JavaPluginExtension.class);
ExtensionContainer ext = getProject().getExtensions();
Property<JavaLauncher> javaLauncherProperty = getJavaLauncher();
Optional.ofNullable(ext.findByType(JavaToolchainService.class))
.flatMap(ts -> Optional.ofNullable(javaExtension.getToolchain()).map(ts::launcherFor))
.ifPresent(javaLauncherProperty::set);
if(!Objects.isNull(javaApplication)) {
getMainClass().convention(javaApplication.getMainClass());
getMainModule().convention(javaApplication.getMainModule());

View File

@@ -2,7 +2,7 @@ woggioniMavenRepositoryUrl=https://mvn.woggioni.net/
lys.catalog.version=2023.10.01
version.myGradlePlugins=2023.10.06
version.myGradlePlugins=2023.10.20
version.gradle=7.6
version.felix.config.admin=1.9.26
version.felix=7.0.5