diff --git a/src/main/java/org/gradlex/javamodule/packaging/JavaModulePackagingPlugin.java b/src/main/java/org/gradlex/javamodule/packaging/JavaModulePackagingPlugin.java index 54b06b3..3d10de4 100644 --- a/src/main/java/org/gradlex/javamodule/packaging/JavaModulePackagingPlugin.java +++ b/src/main/java/org/gradlex/javamodule/packaging/JavaModulePackagingPlugin.java @@ -26,7 +26,7 @@ @NullMarked public abstract class JavaModulePackagingPlugin implements Plugin { - private static final String DEFAULT_FATJAR_LAUNCHER = "build.jenesis:build.jenesis.launcher:0.3.0"; + private static final String DEFAULT_FATJAR_LAUNCHER = "build.jenesis:build.jenesis.launcher:0.6.5"; @Override public void apply(Project project) { diff --git a/src/main/java/org/gradlex/javamodule/packaging/tasks/FatModuleJar.java b/src/main/java/org/gradlex/javamodule/packaging/tasks/FatModuleJar.java index 55a2579..56eea1a 100644 --- a/src/main/java/org/gradlex/javamodule/packaging/tasks/FatModuleJar.java +++ b/src/main/java/org/gradlex/javamodule/packaging/tasks/FatModuleJar.java @@ -60,13 +60,13 @@ protected void copy() { extendedSpec.with(getRootSpec()); File applicationProperties = writeApplicationProperties(); - extendedSpec.from(applicationProperties); + extendedSpec.from(applicationProperties, c -> c.into("META-INF/jenesis")); extendedSpec.from(getLauncherPath().getFiles().stream() .map(jar -> getArchives().zipTree(jar).matching(f -> f.exclude("META-INF/MANIFEST.MF"))) .collect(Collectors.toList())); - extendedSpec.into("modulepath", pathFolder -> { + extendedSpec.into("jars", pathFolder -> { for (File jarOrFolder : getModulePath()) { if (jarOrFolder.exists()) { if (jarOrFolder.isDirectory()) { @@ -92,8 +92,12 @@ private File writeApplicationProperties() { Files.write( applicationProperties.toPath(), String.format( - "mainModule=%s\nmainClass=%s", - getMainModule().get(), getMainClass().get()) + "mainModule=%s\nmainClass=%s\nmodulepath=%s", + getMainModule().get(), + getMainClass().get(), + getModulePath().getFiles().stream() + .map(this::nameWithoutExtension) + .collect(Collectors.joining(","))) .getBytes(UTF_8)); } catch (IOException e) { throw new RuntimeException(e); diff --git a/src/test/java/org/gradlex/javamodule/packaging/test/FatModuleJarTest.java b/src/test/java/org/gradlex/javamodule/packaging/test/FatModuleJarTest.java index 695cd9a..67c1fbd 100644 --- a/src/test/java/org/gradlex/javamodule/packaging/test/FatModuleJarTest.java +++ b/src/test/java/org/gradlex/javamodule/packaging/test/FatModuleJarTest.java @@ -35,7 +35,7 @@ void setup() { public class Main { public static void main(String... args) { boolean isInFatJar = Main.class.getProtectionDomain().getCodeSource().getLocation().toString() - .endsWith("app-1.0-all.jar!/modulepath/app-1.0/"); + .endsWith("app-1.0-all.jar!/jars/app-1.0/"); System.out.println(Main.class.getModule().getName() + " / " + isInFatJar); } } @@ -84,7 +84,7 @@ void offers_one_fat_jar_task_per_target() { build.build(":app:fatModuleJarUbuntu"); assertThat(linuxJar).isRegularFile(); - assertThat(macOsJar).hasSize(1082396); + assertThat(macOsJar).hasSize(1113524); assertThat(macOsJar).hasSameBinaryContentAs(windowsJar); assertThat(macOsJar).hasSameBinaryContentAs(linuxJar); } @@ -142,9 +142,9 @@ void target_specific_fat_jars_differ_if_they_package_target_specific_modules() { build.build(":app:fatModuleJarUbuntu"); assertThat(linuxJar).isRegularFile(); - assertThat(macOsJar).hasSize(1894824); - assertThat(windowsJar).hasSize(1883723); - assertThat(linuxJar).hasSize(1886498); + assertThat(macOsJar).hasSize(1917646); + assertThat(windowsJar).hasSize(1906539); + assertThat(linuxJar).hasSize(1909316); } @Test