@@ -58,9 +58,10 @@ public abstract class NativeImageConfigurationTask extends JavaExec {
|
|||||||
JavaPluginExtension javaExtension = getProject().getExtensions().getByType(JavaPluginExtension.class);
|
JavaPluginExtension javaExtension = getProject().getExtensions().getByType(JavaPluginExtension.class);
|
||||||
ExtensionContainer ext = getProject().getExtensions();
|
ExtensionContainer ext = getProject().getExtensions();
|
||||||
Property<JavaLauncher> javaLauncherProperty = getJavaLauncher();
|
Property<JavaLauncher> javaLauncherProperty = getJavaLauncher();
|
||||||
Optional.ofNullable(ext.findByType(JavaToolchainService.class))
|
javaLauncherProperty.set(getProject().provider(() -> Optional.of(toolchain).orElseGet(javaExtension::getToolchain)).flatMap(toolchainSpec -> {
|
||||||
.flatMap(ts -> Optional.of(toolchain).map(ts::launcherFor))
|
final JavaToolchainService jts = ext.findByType(JavaToolchainService.class);
|
||||||
.ifPresent(javaLauncherProperty::convention);
|
return jts.launcherFor(toolchainSpec);
|
||||||
|
}));
|
||||||
if(!Objects.isNull(javaApplication)) {
|
if(!Objects.isNull(javaApplication)) {
|
||||||
getMainClass().convention(javaApplication.getMainClass());
|
getMainClass().convention(javaApplication.getMainClass());
|
||||||
getMainModule().convention(javaApplication.getMainModule());
|
getMainModule().convention(javaApplication.getMainModule());
|
||||||
|
|||||||
@@ -2,7 +2,9 @@ package net.woggioni.gradle.graalvm;
|
|||||||
|
|
||||||
import org.gradle.api.Action;
|
import org.gradle.api.Action;
|
||||||
import org.gradle.api.file.FileCollection;
|
import org.gradle.api.file.FileCollection;
|
||||||
|
import org.gradle.api.provider.ListProperty;
|
||||||
import org.gradle.api.provider.Property;
|
import org.gradle.api.provider.Property;
|
||||||
|
import org.gradle.api.tasks.Input;
|
||||||
import org.gradle.api.tasks.Nested;
|
import org.gradle.api.tasks.Nested;
|
||||||
import org.gradle.jvm.toolchain.JavaToolchainSpec;
|
import org.gradle.jvm.toolchain.JavaToolchainSpec;
|
||||||
|
|
||||||
@@ -15,6 +17,7 @@ public interface NativeImageExtension {
|
|||||||
|
|
||||||
JavaToolchainSpec toolchain(Action<? super JavaToolchainSpec> action);
|
JavaToolchainSpec toolchain(Action<? super JavaToolchainSpec> action);
|
||||||
|
|
||||||
|
ListProperty<String> getJvmArgs();
|
||||||
Property<Boolean> getUseMusl();
|
Property<Boolean> getUseMusl();
|
||||||
Property<Boolean> getBuildStaticImage();
|
Property<Boolean> getBuildStaticImage();
|
||||||
Property<Boolean> getEnableFallback();
|
Property<Boolean> getEnableFallback();
|
||||||
@@ -28,5 +31,7 @@ public interface NativeImageExtension {
|
|||||||
|
|
||||||
Property<Boolean> getUseLZMA();
|
Property<Boolean> getUseLZMA();
|
||||||
|
|
||||||
|
Property<Boolean> getVerbose();
|
||||||
|
|
||||||
Property<Integer> getCompressionLevel();
|
Property<Integer> getCompressionLevel();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,8 +15,6 @@ import org.gradle.api.provider.Provider;
|
|||||||
import org.gradle.api.tasks.CacheableTask;
|
import org.gradle.api.tasks.CacheableTask;
|
||||||
import org.gradle.api.tasks.TaskContainer;
|
import org.gradle.api.tasks.TaskContainer;
|
||||||
import org.gradle.jvm.tasks.Jar;
|
import org.gradle.jvm.tasks.Jar;
|
||||||
import org.gradle.jvm.toolchain.JavaToolchainSpec;
|
|
||||||
import org.gradle.jvm.toolchain.internal.DefaultToolchainSpec;
|
|
||||||
|
|
||||||
@CacheableTask
|
@CacheableTask
|
||||||
public class NativeImagePlugin implements Plugin<Project> {
|
public class NativeImagePlugin implements Plugin<Project> {
|
||||||
@@ -93,9 +91,11 @@ public class NativeImagePlugin implements Plugin<Project> {
|
|||||||
jts.getLanguageVersion().convention(nativeImageExtension.getToolchain().getLanguageVersion());
|
jts.getLanguageVersion().convention(nativeImageExtension.getToolchain().getLanguageVersion());
|
||||||
});
|
});
|
||||||
|
|
||||||
|
nativeImageTask.getJvmArgs().set(nativeImageExtension.getJvmArgs());
|
||||||
nativeImageTask.getBuildStaticImage().set(nativeImageExtension.getBuildStaticImage());
|
nativeImageTask.getBuildStaticImage().set(nativeImageExtension.getBuildStaticImage());
|
||||||
nativeImageTask.getUseMusl().set(nativeImageExtension.getUseMusl());
|
nativeImageTask.getUseMusl().set(nativeImageExtension.getUseMusl());
|
||||||
nativeImageTask.getLinkAtBuildTime().set(nativeImageExtension.getLinkAtBuildTime());
|
nativeImageTask.getLinkAtBuildTime().set(nativeImageExtension.getLinkAtBuildTime());
|
||||||
|
nativeImageTask.getLinkAtBuildTime().set(nativeImageExtension.getVerbose());
|
||||||
nativeImageTask.getMainClass().set(nativeImageExtension.getMainClass());
|
nativeImageTask.getMainClass().set(nativeImageExtension.getMainClass());
|
||||||
nativeImageTask.getMainModule().set(nativeImageExtension.getMainModule());
|
nativeImageTask.getMainModule().set(nativeImageExtension.getMainModule());
|
||||||
nativeImageTask.getEnableFallback().set(nativeImageExtension.getEnableFallback());
|
nativeImageTask.getEnableFallback().set(nativeImageExtension.getEnableFallback());
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import org.gradle.api.model.ObjectFactory;
|
|||||||
import org.gradle.api.plugins.BasePluginExtension;
|
import org.gradle.api.plugins.BasePluginExtension;
|
||||||
import org.gradle.api.plugins.ExtensionContainer;
|
import org.gradle.api.plugins.ExtensionContainer;
|
||||||
import org.gradle.api.plugins.JavaApplication;
|
import org.gradle.api.plugins.JavaApplication;
|
||||||
|
import org.gradle.api.provider.ListProperty;
|
||||||
import org.gradle.api.provider.Property;
|
import org.gradle.api.provider.Property;
|
||||||
import org.gradle.api.provider.Provider;
|
import org.gradle.api.provider.Provider;
|
||||||
import org.gradle.api.tasks.CacheableTask;
|
import org.gradle.api.tasks.CacheableTask;
|
||||||
@@ -65,6 +66,8 @@ public abstract class NativeImageTask extends Exec {
|
|||||||
@PathSensitive(PathSensitivity.ABSOLUTE)
|
@PathSensitive(PathSensitivity.ABSOLUTE)
|
||||||
public abstract RegularFileProperty getNativeCompilerPath();
|
public abstract RegularFileProperty getNativeCompilerPath();
|
||||||
|
|
||||||
|
@Input
|
||||||
|
public abstract ListProperty<String> getJvmArgs();
|
||||||
@Input
|
@Input
|
||||||
public abstract Property<Boolean> getUseMusl();
|
public abstract Property<Boolean> getUseMusl();
|
||||||
@Input
|
@Input
|
||||||
@@ -73,7 +76,8 @@ public abstract class NativeImageTask extends Exec {
|
|||||||
public abstract Property<Boolean> getEnableFallback();
|
public abstract Property<Boolean> getEnableFallback();
|
||||||
@Input
|
@Input
|
||||||
public abstract Property<Boolean> getLinkAtBuildTime();
|
public abstract Property<Boolean> getLinkAtBuildTime();
|
||||||
|
@Input
|
||||||
|
public abstract Property<Boolean> getVerbose();
|
||||||
@Input
|
@Input
|
||||||
public abstract Property<String> getMainClass();
|
public abstract Property<String> getMainClass();
|
||||||
|
|
||||||
@@ -143,6 +147,12 @@ public abstract class NativeImageTask extends Exec {
|
|||||||
@Override
|
@Override
|
||||||
public Iterable<String> asArguments() {
|
public Iterable<String> asArguments() {
|
||||||
List<String> result = new ArrayList<>();
|
List<String> result = new ArrayList<>();
|
||||||
|
if(getJvmArgs().isPresent()) {
|
||||||
|
final List<String> jvmArgs = getJvmArgs().get();
|
||||||
|
for(final String arg : jvmArgs) {
|
||||||
|
result.add("-J" + arg);
|
||||||
|
}
|
||||||
|
}
|
||||||
if(!getEnableFallback().get()) {
|
if(!getEnableFallback().get()) {
|
||||||
result.add("--no-fallback");
|
result.add("--no-fallback");
|
||||||
}
|
}
|
||||||
@@ -155,6 +165,9 @@ public abstract class NativeImageTask extends Exec {
|
|||||||
if(getLinkAtBuildTime().get()) {
|
if(getLinkAtBuildTime().get()) {
|
||||||
result.add("--link-at-build-time");
|
result.add("--link-at-build-time");
|
||||||
}
|
}
|
||||||
|
if(getVerbose().get()) {
|
||||||
|
result.add("--verbose");
|
||||||
|
}
|
||||||
if(getNativeCompilerPath().isPresent()) {
|
if(getNativeCompilerPath().isPresent()) {
|
||||||
result.add("--native-compiler-path=" + getNativeCompilerPath().getAsFile().get());
|
result.add("--native-compiler-path=" + getNativeCompilerPath().getAsFile().get());
|
||||||
}
|
}
|
||||||
|
|||||||
+2
-2
@@ -1,5 +1,5 @@
|
|||||||
lys.catalog.version=2026.05.27
|
lys.catalog.version=2026.06.08
|
||||||
version.myGradlePlugins=2026.06.07
|
version.myGradlePlugins=2026.06.09
|
||||||
version.gradle=8.14.5
|
version.gradle=8.14.5
|
||||||
|
|
||||||
gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven
|
gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven
|
||||||
|
|||||||
Reference in New Issue
Block a user