One of the key milestones to getting a JavaFX project up and running quickly, is setting up the project in Maven since so much of the tooling is not Mavenized. Maven has the ability to create projects from a template called an "archetype" similar to the way in which NetBeans project templates can be used to create a new JavaFX project. When the user runs the archetype, the following should happen:
- The appropriate folder structure including a folder for distribution resources like the splashscreen should be created.
- A POM file with the appropriate dependencies should be created (including environment variable settings).
- An Eclipse project file should be generated: http://maven.apache.org/guides/mini/guide-ide-eclipse.html
- A skeleton Application should be created
- Maven goals should be generated to create:
- JNLP
- a shaded double-clickable JAR http://maven.apache.org/plugins/maven-shade-plugin/
- 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).
Development shops typically have a build machine (usually Linux) that runs automated builds, and the machine should be able to build any of the platform-specific packages previously specified.
The POM shouldn't rely on Ant calls.
Once the project has been generated, the developer should be able to type "mvn package:webstart" (or something similar) and find the appropriate artifacts in the target directory.
- The appropriate folder structure including a folder for distribution resources like the splashscreen should be created.
- A POM file with the appropriate dependencies should be created (including environment variable settings).
- An Eclipse project file should be generated: http://maven.apache.org/guides/mini/guide-ide-eclipse.html
- A skeleton Application should be created
- Maven goals should be generated to create:
- JNLP
- a shaded double-clickable JAR http://maven.apache.org/plugins/maven-shade-plugin/
- 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).
Development shops typically have a build machine (usually Linux) that runs automated builds, and the machine should be able to build any of the platform-specific packages previously specified.
The POM shouldn't rely on Ant calls.
Once the project has been generated, the developer should be able to type "mvn package:webstart" (or something similar) and find the appropriate artifacts in the target directory.