From 0d32fb5ba99976c5ca45883c236758e576e1c2af Mon Sep 17 00:00:00 2001 From: Walter Oggioni Date: Tue, 15 Apr 2025 14:10:42 +0800 Subject: [PATCH] added tar distribution to jlink plugin --- .../woggioni/gradle/graalvm/JlinkPlugin.java | 22 ++++++++++++++----- gradle.properties | 2 +- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/graalvm/src/main/java/net/woggioni/gradle/graalvm/JlinkPlugin.java b/graalvm/src/main/java/net/woggioni/gradle/graalvm/JlinkPlugin.java index d34de0e..4a40d6f 100644 --- a/graalvm/src/main/java/net/woggioni/gradle/graalvm/JlinkPlugin.java +++ b/graalvm/src/main/java/net/woggioni/gradle/graalvm/JlinkPlugin.java @@ -2,11 +2,8 @@ package net.woggioni.gradle.graalvm; import org.gradle.api.Plugin; import org.gradle.api.Project; -import org.gradle.api.Task; import org.gradle.api.artifacts.ConfigurationContainer; import org.gradle.api.file.FileCollection; -import org.gradle.api.file.ProjectLayout; -import org.gradle.api.plugins.BasePlugin; import org.gradle.api.plugins.BasePluginExtension; import org.gradle.api.plugins.ExtensionContainer; import org.gradle.api.plugins.JavaApplication; @@ -14,15 +11,17 @@ import org.gradle.api.plugins.JavaLibraryPlugin; import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.provider.Provider; import org.gradle.api.tasks.TaskContainer; +import org.gradle.api.tasks.bundling.Tar; import org.gradle.api.tasks.bundling.Zip; -import org.gradle.jvm.tasks.Jar; import java.util.Optional; public class JlinkPlugin implements Plugin { public static final String JLINK_TASK_NAME = "jlink"; - public static final String JLINK_DIST_TASK_NAME = "jlinkDist"; + public static final String JLINK_DIST_ZIP_TASK_NAME = "jlinkDistZip"; + public static final String JLINK_DIST_TAR_TASK_NAME = "jlinkDistTar"; + @Override public void apply(Project project) { project.getPluginManager().apply(JavaLibraryPlugin.class); @@ -40,7 +39,7 @@ public class JlinkPlugin implements Plugin { jlinkTask.getClasspath().set(classpath); }); - Provider jlinkZipTaskProvider = tasks.register(JLINK_DIST_TASK_NAME, Zip.class, zip -> { + Provider jlinkZipTaskProvider = tasks.register(JLINK_DIST_ZIP_TASK_NAME, Zip.class, zip -> { zip.getArchiveBaseName().set(project.getName()); if(project.getVersion() != null) { zip.getArchiveVersion().set(project.getVersion().toString()); @@ -49,8 +48,19 @@ public class JlinkPlugin implements Plugin { zip.from(jlinTaskProvider); }); + Provider jlinkTarTaskProvider = tasks.register(JLINK_DIST_TAR_TASK_NAME, Tar.class, zip -> { + zip.getArchiveBaseName().set(project.getName()); + if(project.getVersion() != null) { + zip.getArchiveVersion().set(project.getVersion().toString()); + } + zip.getDestinationDirectory().set(basePluginExtension.getDistsDirectory()); + zip.from(jlinTaskProvider); + }); + + tasks.named(JLINK_TASK_NAME, JlinkTask.class, jlinkTask -> { jlinkTask.finalizedBy(jlinkZipTaskProvider); + jlinkTask.finalizedBy(jlinkTarTaskProvider); }); } } diff --git a/gradle.properties b/gradle.properties index d1b4295..0970586 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,5 +1,5 @@ lys.catalog.version=2025.02.05 -version.myGradlePlugins=2025.03.08 +version.myGradlePlugins=2025.04.15 version.gradle=8.12 gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven