Maven support

Mark Fortner phidias51 at gmail.com
Mon Oct 15 13:55:02 PDT 2012


There have been several discussions in the past six months about Maven
support in JavaFX and I wanted to re-open the topic and perhaps get a
comprehensive and current must-have list before filing an issue on it.
 Here's my list:

   - Create a Maven archetype to generate a JavaFX project skeleton.  The
   archetype would:
      - Generate the appropriate folder structure including a folder for
      distribution resources like the splashscreen.
      - Generate a POM file with the appropriate dependencies.
      - Generate Maven goals for creating:
         - JNLP
         - Double-clickable JAR
         - Windows executable
         - Linux RPM and Deb files
         http://mojo.codehaus.org/rpm-maven-plugin/,
         http://mojo.codehaus.org/deb-maven-plugin/
         - Mac DMG file: http://mojo.codehaus.org/osxappbundle-maven-plugin/
      - Handle signing of the JARs (including dependencies).
   - Generate the source, and javadoc artifacts and install them in a
   public repository.  Even though the JavaFX binaries are being distributed,
   the source and the JavaDoc are not, which makes debugging a pain.

The POM should have no native dependencies.  Development shops typically
have a build machine (usually Linux) that runs automated builds, and the
machine should be able to build any platform-specific executable.

The POM shouldn't rely on Ant calls.  The Maven plugin should be
self-contained and easily configurable.

Once the basics are sorted out, it would be good to re-examine how
developing JavaFX apps could be made even easier with Maven.  For example,
it might be nice to autogenerate these "Observable" POJOs from POJOs that
already exist and are being used on the server.  Imagine having the JavaFX
version of Spring ROO or Grails where the forms and controllers you need
are automatically generated.  This would make it easier the prospect of
transitioning to a new toolkit less daunting, and make it possible to build
on the infrastructure and services that you already have in place.

Mark


More information about the openjfx-dev mailing list