getLog().info("Building JavaFX JAR for application");
Build build = project.getBuild();
CreateJarParams createJarParams = new CreateJarParams();
createJarParams.setOutdir(jfxAppOutputDir);
createJarParams.setOutfile(jfxMainAppJarName);
createJarParams.setApplicationClass(mainClass);
createJarParams.setCss2bin(css2bin);
createJarParams.setPreloader(preLoader);
StringBuilder classpath = new StringBuilder();
File libDir = new File(jfxAppOutputDir, "lib");
if (!libDir.exists() && !libDir.mkdirs()) {
throw new MojoExecutionException("Unable to create app lib dir: " + libDir);
}
if (updateExistingJar) {
createJarParams.addResource(null, new File(build.getDirectory() + File.separator + build.getFinalName() + ".jar"));
} else {
createJarParams.addResource(new File(build.getOutputDirectory()), "");
}
try {
for (Object object : project.getRuntimeClasspathElements()) {
String path = (String) object;
File file = new File(path);
if (file.isFile()) {
getLog().debug("Including classpath element: " + path);
File dest = new File(libDir, file.getName());
if (!dest.exists()) {
Files.copy(file.toPath(), dest.toPath());
}
classpath.append("lib/").append(file.getName()).append(" ");
}
}
} catch (DependencyResolutionRequiredException e) {
throw new MojoExecutionException("Error resolving application classpath to use for application", e);
} catch (IOException e) {
throw new MojoExecutionException("Error copying dependency for application", e);
}
createJarParams.setClasspath(classpath.toString());
try {
getPackagerLib().packageAsJar(createJarParams);
} catch (PackagerException e) {
throw new MojoExecutionException("Unable to build JFX JAR for application", e);