diff --git a/src/main/java/de/fluxparticle/jpackage/BuildImage.java b/src/main/java/de/fluxparticle/jpackage/BuildImage.java index c33e219..afc5d02 100644 --- a/src/main/java/de/fluxparticle/jpackage/BuildImage.java +++ b/src/main/java/de/fluxparticle/jpackage/BuildImage.java @@ -187,33 +187,37 @@ private List processJars(List classpathElements, Path modulesDir } private static String fix(Path modulesDir, String modulePath, Path jar) throws IOException, InterruptedException { - System.out.println("Fix: " + jar); - - if (!jDeps(modulesDir, modulePath, jar)) { - return null; - } - String fileName = jar.getFileName().toString(); - int splitVersion = fileName.lastIndexOf('-'); + Path target = modulesDir.resolve(fileName); - String moduleName = fileName.substring(0, splitVersion).replace('-', '.'); + if (Files.exists(target)) { + System.out.println("Already Fixed: " + fileName); + } else try { + System.out.println("Fix: " + jar); - Path mod = modulesDir.resolve(moduleName); - Path out = mod.resolve("classes"); + if (!jDeps(modulesDir, modulePath, jar)) { + return null; + } - extract(jar, out); + int splitVersion = fileName.lastIndexOf('-'); - Path file = mod.resolve("module-info.java"); + String moduleName = fileName.substring(0, splitVersion).replace('-', '.'); - if (!javaCompiler(modulePath, out, file)) { - return null; - } + Path mod = modulesDir.resolve(moduleName); + Path out = mod.resolve("classes"); - Path target = modulesDir.resolve(fileName); + extract(jar, out); - pack(target, out); + Path file = mod.resolve("module-info.java"); - System.out.println(); + if (!javaCompiler(modulePath, out, file)) { + return null; + } + + pack(target, out); + } finally { + System.out.println(); + } return target.toString(); }