如何将JavaFX 2.0类添加到现有Maven项目中?

Mic*_*l L 8 javafx maven

我有一个Maven项目,它只在xy轴上显示一个图形.我想将该图更改为Javafx 2.0线图以显示相同的数据.我尝试使用FEST-javafx-maven插件,但我仍然无法编译代码; 编译器找不到所有的javafx.xxx导入.

任何帮助,将不胜感激.

jew*_*sea 8

更新(2015年10月6日)

现代JavaFX版本(随Oracle Java 8+一起提供)不需要任何其他类路径来使用JavaFX.JavaFX运行时位于Java用于编译和执行的默认类路径上.这意味着没有其他依赖关系的普通maven pom.xml文件将构建JavaFX应用程序.

但是,如果您希望为应用程序使用其他打包功能,例如将其部署为独立应用程序的能力,那么我建议使用(第三方)JavaFX Maven插件.

上一个答案

此答案中的以下信息现在大部分都是陈旧且过时的.

到巨星Maven插件,我发现(链接http://fest.easytesting.org/javafx/maven/)是用于构建JavaFX脚本1.x的项目,这是一个完全不同的,不兼容的野兽的JavaFX 2.0的工具-我不确定是否有支持JavaFX 2.0的fest maven插件的更新版本.

目前没有官方支持来自Oracle的Maven,也没有公开托管的Maven存储库中的JavaFX 2.0版本.

但是,我过去使用maven成功构建了JavaFX 2.0项目,方法是使用jfxrt.jar上的系统范围依赖项,并(可选)从maven调用JavaFX ant任务.

如果您通过JFXPanel将图形嵌入到现有的Swing应用程序中,那么您不需要使用JavaFX ant任务.从JavaFX运行时添加jfxrt.jar作为系统依赖项或手动将其安装到maven存储库以使用非系统范围的依赖项.

手动安装所需JavaFX 2.0运行时jar的命令示例如下:

mvn install:install-file -Dfile="C:\Program Files\Oracle\JavaFX 2.1.0 SDK\rt\lib\jfxrt.jar" -DgroupId=com.oracle.javafx -DartifactId=javafx -Dversion=2.1 -Dpackaging=jar
Run Code Online (Sandbox Code Playgroud)

运行上面的命令后,将jfxrt.jar文件的依赖项添加到maven pom,项目编译应该解析所有JavaFX API引用:

<dependency>
  <groupId>com.oracle.javafx</groupId>
  <artifactId>javafx</artifactId>
  <version>2.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

如果扩展JavaFX应用程序类,你想你的应用程序打包以便通过Webstart的,浏览器部署嵌入或作为一个JavaFX安装意识到点击罐子,那么你应该调整你的pom.xml文件来执行相关的JavaFX 2.0 Ant任务- HTTP:/ /code.google.com/p/willow-browser/source/browse/pom.xml演示了这样的改编.

这些主题讨论JavaFX 2.0 maven支持并提供进一步的背景信息和示例: