Eclipse中带Maven的JavaFX应用程序

Eclipse中带Maven的JavaFX应用程序,maven,javafx,javafx-2,maven-3,javafx-8,Maven,Javafx,Javafx 2,Maven 3,Javafx 8,我想问一下,是否有任何方法可以将JavaFX添加到Eclipse中的Maven原型列表中,或者有任何插件可以使用Maven来构建JavaFX应用程序。为了构建JavaFX应用程序,我唯一要添加到我的pom.xml中的是以下依赖项: <dependency> <groupId>com.oracle</groupId> <artifactId>javafx</artifactId> <v

我想问一下,是否有任何方法可以将JavaFX添加到Eclipse中的Maven原型列表中,或者有任何插件可以使用Maven来构建JavaFX应用程序。

为了构建JavaFX应用程序,我唯一要添加到我的
pom.xml
中的是以下依赖项:

<dependency>
        <groupId>com.oracle</groupId>
        <artifactId>javafx</artifactId>
        <version>2.2</version>
        <systemPath>${java.home}/lib/ext/jfxrt.jar</systemPath>
        <scope>system</scope>
</dependency>

com.oracle
javafx
2.2
${java.home}/lib/ext/jfxrt.jar
系统
它只是在我的Java8JRE中获取JavaFXJAR,将其添加到项目中。 然后,我使用
maven汇编插件
构建带有依赖项的jar

<plugin>
    <groupId>com.zenjava</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>8.8.3</version>
    <configuration>
        <mainClass>your.main.class.which.extends.javafx.Application</mainClass>
    </configuration>
</plugin>
希望有帮助。

maven可以使用

使用Java8开发时,您只需将该插件作为一些构建插件,而无需进一步依赖

<plugin>
    <groupId>com.zenjava</groupId>
    <artifactId>javafx-maven-plugin</artifactId>
    <version>8.8.3</version>
    <configuration>
        <mainClass>your.main.class.which.extends.javafx.Application</mainClass>
    </configuration>
</plugin>

com.zenjava
javafxmaven插件
8.8.3
your.main.class.which.extends.javafx.Application
调用
mvnjfx:jar
会在
target/jfx/app/yourappjfx.jar
中创建javafx应用程序jar,甚至在调用
mvnjfx:native
时创建本机启动器(如EXE文件)


免责声明:我是javafx maven插件的维护者。

只需像普通Java应用程序那样做,因为javafx版本已经升级到了8.0。对JavaFX的支持是内置的

        <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <version>1.6.0</version>
            <executions>
                <execution>
                    <id>run application</id>
                    <phase>package</phase>
                    <goals>
                        <goal>java</goal>
                    </goals>
                    <configuration>
                        <mainClass>cn.keepfight.intro.FXParamApp</mainClass>
                        <arguments>
                            <!--<argument>-Dsun.java2d.opengl=true</argument>-->
                        </arguments>
                    </configuration>
                </execution>
            </executions>
        </plugin>

org.codehaus.mojo
execmaven插件
1.6.0
运行应用程序
包裹
JAVA
cn.keepfight.intro.FXParamApp

org.apache.maven.plugins
maven汇编插件
3.2.0
组装
包裹
单一的
带有依赖项的jar
com.main类

此答案从位于的文档中复制。更详细的信息(包括完整的示例pom.xml参考)可以在提供的链接中找到

pom使用JavaFX Maven插件:

<plugins>
    <plugin>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-maven-plugin</artifactId>
        <version>0.0.3</version>
        <configuration>
            <mainClass>HelloFX</mainClass>
        </configuration>
    </plugin>
</plugins>

org.openjfx
javafxmaven插件
0.0.3
海洛夫
添加maven依赖项:

<dependencies>
  <dependency>
    <groupId>org.openjfx</groupId>
    <artifactId>javafx-controls</artifactId>
    <version>13</version>
  </dependency>
</dependencies>

org.openjfx
javafx控件
13
运行应用程序(例如,基于参考样本中的HelloFX.java):

mvn clean javafx:run

关于其他过时答案的注意事项

  • 以前的答案(高度投票)引用了
    com.zenjava
    javafxmaven插件
    ,这些答案已经过时,因为该插件没有编码为与最新的javafx版本一起使用。对于Java版本10+,应使用
    org.openjfx
    javafxmaven插件
  • 另外,对于Java10+,只引用汇编插件并声明JavaFX包含在JDK中的答案也过时了。JavaFX不再捆绑在最近的JDK版本中,而是作为openjfx.io中的一个单独SDK或maven中央存储库中的一组库依赖项提供

  • 它有点过时,而且还没有完全完成,但您可以使用我们的配置创建网站:它仅适用于maven,或者我们可以将其与eclipse集成。我的意思是像eclipse上的应用程序一样运行。maven插件只是包装了javapackager的命令行调用。您应该能够创建自己的run命令来执行
    java-jar target/jfx/app/yourapp jfx.jar
    。运行javafx应用程序是不同的,因为JVM参数的可能性,所以仅仅调用main方法并不是javafx应用程序的工作方式。正确的(当前)答案可在此处找到: