Adam Bien's Weblog
How To Compile Java FX 2 Applications With Maven 3
Java FX 2 is Java. To build a Java FX application you only need an additional JAR: jfxrt.jar which contains the Java FX UI classes. The JAR comes with Java FX SDK, but is not included in the public maven repository. You can point to the Java FX SDK installation with Maven's system scope dependency:
<project>
...
<dependencies>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>javafx</artifactId>
<version>2.0</version>
<systemPath>${fx.home}/rt/lib/jfxrt.jar</systemPath>
<scope>system</scope>
</dependency>
</dependencies>
</project>
The resolution of the ${fx.home} variable ensures the pom.xml independency on user-specific settings:
<settings>
...
<profiles>
<profile>
<id>javafx</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<fx.home>[PATH]/javafx-sdk2.1.0-beta/</fx.home>
</properties>
</profile>
</profiles>
</settings>
Posted at 09:01AM Dec 21, 2011 by Adam Bien in RIA / Java FX | Comments[2] | Views/Hits: 12719
NEW Workshop: "JPA, NoSQL, Caching, Grids and Distributed Caches with Java EE 7", May 7th, 2013, Airport Munich
A book about rethinking Java EE Patterns
Tweet Follow @AdamBien

Instead of forcing the definition of a profile and fx.home property, you might consider doing it like so:
<dependency>
<groupId>com.oracle</groupId>
<artifactId>javafx</artifactId>
<version>${javafx.version}</version>
<systemPath>${java.home}/lib/jfxrt.jar</systemPath>
<scope>system</scope>
</dependency>
This way, as long as you have JavaFX installed in your JVM folders, it's a bit simpler ;)
Posted by Pedro Assunção on June 27, 2012 at 01:54 PM CEST #
Hi, Adam, great post!
I tried your solution, but I'm getting "java.lang.NoClassDefFoundError: javafx/application/Application"
is there something else to set up to get javafx running on Maven 3 ?
thanks
Posted by Rafael Nascimento on October 26, 2012 at 04:31 PM CEST #