67 .setToolProvider(JavaTool.JAVAC) |
67 .setToolProvider(JavaTool.JAVAC) |
68 .addArguments("-d", workDir.toString()) |
68 .addArguments("-d", workDir.toString()) |
69 .addPathArguments(sourceFiles) |
69 .addPathArguments(sourceFiles) |
70 .execute().assertExitCodeIsZero(); |
70 .execute().assertExitCodeIsZero(); |
71 } |
71 } |
72 Path tmpJar = workDir.resolve("foo.jar"); |
72 |
73 Executor jarExe = new Executor(); |
73 Files.createDirectories(outputJar.getParent()); |
74 jarExe.setToolProvider(JavaTool.JAR).addArguments("-c", "-f", tmpJar.toString()); |
74 if (Files.exists(outputJar)) { |
|
75 TKit.trace(String.format("Delete [%s] existing jar file", outputJar)); |
|
76 Files.deleteIfExists(outputJar); |
|
77 } |
|
78 |
|
79 Executor jarExe = new Executor() |
|
80 .setToolProvider(JavaTool.JAR) |
|
81 .addArguments("-c", "-f", outputJar.toString()); |
75 if (moduleVersion != null) { |
82 if (moduleVersion != null) { |
76 jarExe.addArguments(String.format("--module-version=%s", |
83 jarExe.addArguments(String.format("--module-version=%s", |
77 moduleVersion)); |
84 moduleVersion)); |
78 } |
85 } |
79 if (mainClass != null) { |
86 if (mainClass != null) { |
80 jarExe.addArguments("-e", mainClass); |
87 jarExe.addArguments("-e", mainClass); |
81 } |
88 } |
82 jarExe.addArguments("-C", workDir.toString(), "."); |
89 jarExe.addArguments("-C", workDir.toString(), "."); |
83 jarExe.execute().assertExitCodeIsZero(); |
90 jarExe.execute().assertExitCodeIsZero(); |
84 outputJar.getParentFile().mkdirs(); |
|
85 Files.copy(tmpJar, outputJar.toPath(), REPLACE_EXISTING); |
|
86 }); |
91 }); |
87 } |
92 } |
88 private List<Path> sourceFiles; |
93 private List<Path> sourceFiles; |
89 private File outputJar; |
94 private Path outputJar; |
90 private String mainClass; |
95 private String mainClass; |
91 private String moduleVersion; |
96 private String moduleVersion; |
92 } |
97 } |