- This will replace the javafx-maven-plugin, as this is a rewrite of the whole contept, without the requirement for the OpenJFX/JavaFX-part being installed. It'll be JavaFX-agnostic, making it more accessable to non-JFX applications.
- pull-requests are getting ignored and closed unseed until this plugin is released
- unlike the javafx-maven-plugin, this maven-plugin does try to not rely on the installed JavaFX/OpenJFX parts, but on short term (to make the replacement-process faster) it re-uses the files that are coming with them, so make sure to have them installed aswell (the roadmap contains a rewrite of the native launcher part, probably using RUST)
- no batteries included: every bundle-type except "java-app" is done in a separate maven-project, making this maven-plugin like a nice bootstrapper for custom bundlers, and making it more flexible for having your very own way to bundle your stuff (like DromblerFX)
- please look in the test-projects to have some insight whats coming up
- I am aware of the proposal/JEP JDK-8200758 regarding oracles own replacement for the javapackager, but as they did not a good job on that, and to avoid any deep dependency on that, I do not intend to re-integrate with their stuff (time will have to tell about the quality of their tool, might change my mind about it)
Distributing Java software applications gets tricky sometimes, therefor this plugin integrates the creation of them into your build system (maven).
There are three types of bundles:
- (java-app bundle) executable jar-file with dependencies
- (native-app bundle) executable jar-file with dependencies, with the addition of some OS native launcher files and some JRE aside
- (native-installer bundle) all the above, packed and stuffed into some native installer file (MSI, DEB, PKG, ...) without a lot of restrictions
To be one of the first beta-testers, just add the first available snapshot-version using the snapshot-repository from Sonatype:
<pluginRepositories>
<pluginRepository>
<id>oss-sonatype-snapshots</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
Add this to your <build>
-block:
<plugin>
<groupId>de.dynamicfiles.projects.maven</groupId>
<artifactId>distribution-bundle-plugin</artifactId>
<version>1.0.0-SNAPSHOT</version>
<executions>
<execution>
<id>generate-java-bundle</id>
<phase>package</phase>
<goals>
<goal>java-app</goal>
</goals>
</execution>
</executions>
</plugin>