The JavaFX Maven Plugin provides a way to assemble distribution bundles for JavaFX applications (8+) from within Maven.
For easy configuration please use our new website (which needs to get updated/reworked again): http://javafx-maven-plugin.github.io
For (outdated) documentation/examples, your can look at archived website: https://web.archive.org/web/20141009064442/http://zenjava.com/javafx/maven/
Add this to your pom.xml within to your build-plugin:
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.7.0</version>
<configuration>
<mainClass>your.package.with.Launcher</mainClass>
</configuration>
</plugin>To create your executable file with JavaFX-magic, call mvn jfx:jar. The jar-file will be placed at target/jfx/app.
Add this to your pom.xml within to your build-plugin:
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>8.7.0</version>
<configuration>
<vendor>YourCompany</vendor>
<mainClass>your.package.with.Launcher</mainClass>
</configuration>
</plugin>To create your executable file with JavaFX-magic and some installers (please see official oracle-documentation which applications are required for this), call mvn jfx:native. The native launchers or installers will be placed at target/jfx/native.
Add repository in your pom.xml for snapshot-versions of this plugin:
<pluginRepositories>
<pluginRepository>
<id>oss-sonatype-snapshots</id>
<url>https://oss.sonatype.org/content/groups/public/</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>Set version to new SNAPSHOT-version:
<plugin>
<groupId>com.zenjava</groupId>
<artifactId>javafx-maven-plugin</artifactId>
<version>9.0.0-SNAPSHOT</version>
<configuration>
<!-- your configuration -->
</configuration>
</plugin>Some notes: as this isn't the main branch, a lot of features aren't present in that branch yet, deployment of new "-SNAPSHOT"-version are on-demand This is currently heavily outdated
Version 8.7.0 (09-Sept-2016)
New:
- added
additionalBundlerResourcesfor being able to have additional files available to the used bundler - added feature for copying additionalAppResources to
target/jfx/appwhen callingjfx:jarandjfx:run, making it possible to have all that files available (like native files being required to not reside in the jar-files) by setting<copyAdditionalAppResourcesToJar>true</copyAdditionalAppResourcesToJar>
Bugfixes:
- fixed possible file-handler leak (unreported)
Improvements:
- refactored a bit to have cleaner code
upcoming Version 8.8.0 (???-2016)
New:
- added detection of missing main class, wrong configuration now gets detected a bit earlier
Improvements:
- added warning when no classes were generated for
-jfx.jar-generation, fixes issue #233 (no real FIX, as this is no real BUG ... IMHO) - added warning about slow performance (even on SSD) when having ext4/btrfs filesystems using "deb"-bundler (fixes issue #41)
- added warning about missing "jnlp.outfile"-property inside bundleArguments when using JNLP-bundler (from issue #42)
Changes:
- reimplemented
<additionalBundlerResources>, now searching for folders with the name of the used bundler, makes it possible to adjust nearly all bundlers now