added tar distribution to jlink plugin
All checks were successful
CI / build (push) Successful in 2m45s

This commit is contained in:
2025-04-15 14:10:42 +08:00
parent 8d9861ae75
commit 0d32fb5ba9
2 changed files with 17 additions and 7 deletions

View File

@@ -2,11 +2,8 @@ package net.woggioni.gradle.graalvm;
import org.gradle.api.Plugin; import org.gradle.api.Plugin;
import org.gradle.api.Project; import org.gradle.api.Project;
import org.gradle.api.Task;
import org.gradle.api.artifacts.ConfigurationContainer; import org.gradle.api.artifacts.ConfigurationContainer;
import org.gradle.api.file.FileCollection; 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.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;
@@ -14,15 +11,17 @@ import org.gradle.api.plugins.JavaLibraryPlugin;
import org.gradle.api.plugins.JavaPlugin; import org.gradle.api.plugins.JavaPlugin;
import org.gradle.api.provider.Provider; import org.gradle.api.provider.Provider;
import org.gradle.api.tasks.TaskContainer; import org.gradle.api.tasks.TaskContainer;
import org.gradle.api.tasks.bundling.Tar;
import org.gradle.api.tasks.bundling.Zip; import org.gradle.api.tasks.bundling.Zip;
import org.gradle.jvm.tasks.Jar;
import java.util.Optional; import java.util.Optional;
public class JlinkPlugin implements Plugin<Project> { public class JlinkPlugin implements Plugin<Project> {
public static final String JLINK_TASK_NAME = "jlink"; 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 @Override
public void apply(Project project) { public void apply(Project project) {
project.getPluginManager().apply(JavaLibraryPlugin.class); project.getPluginManager().apply(JavaLibraryPlugin.class);
@@ -40,7 +39,7 @@ public class JlinkPlugin implements Plugin<Project> {
jlinkTask.getClasspath().set(classpath); jlinkTask.getClasspath().set(classpath);
}); });
Provider<Zip> jlinkZipTaskProvider = tasks.register(JLINK_DIST_TASK_NAME, Zip.class, zip -> { Provider<Zip> jlinkZipTaskProvider = tasks.register(JLINK_DIST_ZIP_TASK_NAME, Zip.class, zip -> {
zip.getArchiveBaseName().set(project.getName()); zip.getArchiveBaseName().set(project.getName());
if(project.getVersion() != null) { if(project.getVersion() != null) {
zip.getArchiveVersion().set(project.getVersion().toString()); zip.getArchiveVersion().set(project.getVersion().toString());
@@ -49,8 +48,19 @@ public class JlinkPlugin implements Plugin<Project> {
zip.from(jlinTaskProvider); zip.from(jlinTaskProvider);
}); });
Provider<Tar> 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 -> { tasks.named(JLINK_TASK_NAME, JlinkTask.class, jlinkTask -> {
jlinkTask.finalizedBy(jlinkZipTaskProvider); jlinkTask.finalizedBy(jlinkZipTaskProvider);
jlinkTask.finalizedBy(jlinkTarTaskProvider);
}); });
} }
} }

View File

@@ -1,5 +1,5 @@
lys.catalog.version=2025.02.05 lys.catalog.version=2025.02.05
version.myGradlePlugins=2025.03.08 version.myGradlePlugins=2025.04.15
version.gradle=8.12 version.gradle=8.12
gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven gitea.maven.url = https://gitea.woggioni.net/api/packages/woggioni/maven