Maven plugin for JavaFX
This is kind of a big release, because it contains so much new stuff :) all just for you !!!
There are some changes, maybe you used the features, mostly one important is about the used properties. Please note that using maven-properties is not recommended, please use the tags inside the configuration-blocks as much as possible.
New:
<skipMainClassScanning>true</skipMainClassScanning>
(might cause the build-time to increase when enabled)nativeReleaseVersion
will now get sanitized, anything than numbers and dots are removed, this ensures compatibility with the used bundler toolsetsjarsigner
was introduced some time ago, but it was lacking some custom parameters, this is now fixed by having the new additionalJarsignerParameters
-list while using native MOJO (fixes issue #260)additionalKeytoolParameters
-list while using generate-key-store MOJO<failOnError>true</failOnError>
<skipJNLP>true</skipJNLP>
inside the <configuration>
-blocknativeReleaseVersion
rewriting, just set <skipNativeVersionNumberSanitizing>true</skipNativeVersionNumberSanitizing>
inside the <configuration>
-blockskipCopyingDependencies
to make it possible to NOT copying dependencies, but they are added to the classpath inside the manifest like normal<fixedManifestClasspath>
for setting the classpath-entry inside the generated manifest-file in the main jfx-jar, this is already possible for secondary launchers by setting <classpath>
within the configuration-block of the secondary launcher<useLibFolderContentForManifestClasspath>
for creating the manifest-entriy for the classpath, depending on the content of the lib-folder, makes it possible to have files not being inside dependencies being present there (which got copied beforehand)Improvements:
-jfx.jar
-generation, fixes issue #233 (no real FIX, as this is no real BUG ... IMHO)libFolderName
Changes:
<additionalBundlerResources>
, now searching for folders with the name of the used bundler, makes it possible to adjust nearly all bundlers nowjfx.
-prefixed properties, please adjust your properties accordingly (I hope this does not break much for you)I'm currently in a very good flow to push new features and bugfixes.
Not even two weeks after the last release some nice features and of course bugfixes are inside this new one. Thanks to all who reported bugs and who are asking me directly via e-mail. Keep on your good work ;) and use this maven-plugin.
New:
additionalBundlerResources
for being able to have additional files available to the used bundlertarget/jfx/app
when calling jfx:jar
and jfx: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:
Improvements:
After three months without a new release, it feels refreshing to have some minor tweaks for you folks. Now all my "open" issues are down to non-critical bugs, it is time to take care of the website, which is heavily outdated ... the polymer-project got some nice mayor upgrade, so this in mind the next goal is to make you happy again.
New:
useEnvironmentRelativeExecutables
to make sure having the correct executables used, required when having multiple installations of java, just set this to false for using the JDK used for executing maven (this got migrated from the javafx-gradle-plugin)runAppParameter
for specifying application parameters passed to the execution call java -jar
while developing your application (this fixes #176, because that issue got valid as the mvn jfx:run
goal is valid again after the removal of the exec-maven-plugin
)runJavaParameter
for having additional settings passed to the execution call used for running your javafx-application, makes it possible to specify javassist-parameters now (and much more)Bugfixes:
Improvements:
jfx:list-bundlers
-mojoThis release contains a step forward into a fully customizable creation-pipeline: by providing a list of your selfmade bundler, which might generate some fancy stuff or does some preprocessing which might become a configuration-hell inside the pom.xml, but behold folks, this cloudy dark age is over now. Take a look at this:
<configuration>
<!-- use our new bundler -->
<bundler>DummyBundler</bundler>
<!-- that bundler resides in some class-file or classpath-dependency inside a jar-file -->
<customBundlers>
<customBundler>com.zenjava.test.customBundlers.DummyBundler</customBundler>
</customBundlers>
</configuration>
Signing your generated installer now becomes less a nightmare and more an easy and REUSABLE task to solve, even without gradle!
(some advertisement) Talking about gradle: did you know there exists a gradle-plugin using the same power of this plugin? It's called JavaFX-Gradle-Plugin
Having problems with created installers on linux-systems like DEB or RPM? Your application does not even run? Oh my friends, you might have caught some bug which already should have been fixed, but lied there in secret inside the installer: a workaround for issue 205 made it into this release. I missed the point, that the application was created twice (when generating installers and not having some specific bundler specified).
In the meantime I'm working on some update of the configurator-website, making the current state being present there too.
Bugfixes:
New:
<skipNativeLauncherWorkaround205>true</skipNativeLauncherWorkaround205>
Improvements:
This was a fast one! Not even a week has passed before a new version was able to be released!
This plugin was depending on some maven-plugins to call keytool
and executing the generated jfx-jar, but that all got reworked by directly using ProcessBuilder. Removing the mojo-executor revealed some misconfiguration of our pom.xml, because we were dependent of transitive dependencies of that maven-plugin (which never is a good idea).
There are some other improvements and changes which are listed below:
New:
jarsigner
by providing the new property <noBlobSigning>true</noBlobSigning>
run
goal got its deprecation removed, you can call mvn jfx:run
now again to start your application like you would start a normal executable-jar (no more calling java -jar yourProject-jfx.jar
)Improved:
org.twdata.maven:mojo-executor
-dependencykeytool
All in all I get the feeling that some users don't report their found bugs, or JNLP isn't used very often when using the javafx-maven-plugin.
Using Gradle? Using Maven isn't what you need? You can start using the javafx-gradle-plugin which brings the same power from maven to gradle.
This release contains one new feature and includes some fixes for the new "jnlp"-bundler of oracle.
Bugfixes:
<jnlp.allPermisions>true</jnlp.allPermisions>
inside bundleArguments)New:
<skipNativeLauncherWorkaround182>true</skipNativeLauncherWorkaround182>
<skipSigningJarFilesJNLP185>true</skipSigningJarFilesJNLP185>
<skipSizeRecalculationForJNLP185>true</skipSizeRecalculationForJNLP185>
The Java 9 SNAPSHOT-release will get updated next week to include all new features and fixes since the last release of version 9.0.0
Thanks to all for using this javafx-maven-plugin.
This release is something special, because it includes not only bugfixes, it introduces some interesting new features. As they are not used that often, I hope you all will provide me with any feedback (and I BET there is something not as right as you are expecting).
Something I really wanted for some time: automatic testing on windows-systems! This is now solved by AppVeyor (which is for free for open-source projects). This got required as there are system-specific tests/workarounds in this projects.
Thanks for using this maven-plugin, means a lot to me!!!
Bugfixes:
New:
<skipNativeLauncherWorkaround167>true</skipNativeLauncherWorkaround167>
mvn jfx:list-bundlers
shows currently available bundlers with ID, name and descriptions, including their specific arguments able to be passed via <bundleArguments>
-configurationImprovements:
After working on issue #124 I found a bug inside the Oracle JDK.
The problem is the native launcher on linux-systems (mostly discovered on Ubuntu). When you have something like this when launching native executable, you should upgrade to version 8.1.5 of this plugin:
client-1.1 No main class specified
client-1.1 Failed to launch JVM
<skipNativeLauncherWorkaround124>
The improvement on this plugin is continuing, but this time no mayor fixes were made:
<userJvmArgs>
from within your javafx-application you can now define a system-scoped dependency which is picked up by javafx-maven-plugin, but only when having at least Java 1.8u40, This feature can be disabled by setting <addPackagerJar>false</addPackagerJar>
inside your configuration.build-keystore
)mvn jfx:generate-key-store
We have a new website now, which is intended to reduce the needed time to create your configuration. That website will be powered by Github-Pages feature, just go to http://javafx-maven-plugin.github.io/ and check it out.
This website is not intended to have all details about configuration, therefor http://www.zenjava.com should be consulted (soon).
This is the new release for 2015. After some some changes at the management, we are proud to present the current version of the javafx-maven-plugin.
There are a big number of bugfixes and new features within this release just to bring you the best tool for your daily development.
Some major changes/enhancements:
bundler
configuration option for selecting the bundler as you wish (makes it possible to skip unwanted native-bundle-types)additionalAppResources
option for having additional files within your native package for easier distribution of additional files (including licenses)Creating pull-requests will now checked by TravisCI for easier validation of potential harmful changes. We are using maven-invoker-plugin to run specific test-projects (we are still enhancing that amount) so please ensure to check these before creating pull-requests, if you commit something new, please try to create a new test-project too.
Feel free to use our plugin, to give us feedback and create issue-tickets if needed.