JavaFX基础:2:使用javafx-maven

-maven-是一个Maven的插件,用于提供在Maven中管理应用的方式 。只需要通过mvn jfx:run即可运行应用 。在这篇文章中,我们利用在IDEA的IDEA中生成的代码,结合-maven-介绍如何在mvn中进行应用的构建和运行 。
事前准备 代码构成
准备如下4个文件和对应的目录结构
liumiaocn:JavaFXSample liumiao$ tree ..├── pom.xml└── src└── main├── java│└── com│└── liumiaocn│└── javademo│├── Controller.java│└── Main.java└── resources└── fxml└── sample.fxml8 directories, 4 filesliumiaocn:JavaFXSample liumiao$
代码详细
liumiaocn:JavaFXSample liumiao$ cat src/main/java/com/liumiaocn/javademo/Main.java package com.liumiaocn.javademo;import javafx.application.Application;import javafx.fxml.FXMLLoader;import javafx.scene.Parent;import javafx.scene.Scene;import javafx.stage.Stage;public class Main extends Application {@Overridepublic void start(Stage primaryStage) throws Exception{Parent root = FXMLLoader.load(getClass().getResource("/fxml/sample.fxml"));primaryStage.setTitle("Hello LiuMiao");primaryStage.setScene(new Scene(root, 600, 600));primaryStage.show();}public static void main(String[] args) {launch(args);}}liumiaocn:JavaFXSample liumiao$
注意事项:().获取的是相对目录下的内容
liumiaocn:JavaFXSample liumiao$ cat src/main/java/com/liumiaocn/javademo/Controller.java package com.liumiaocn.javademo;public class Controller {}liumiaocn:JavaFXSample liumiao$
liumiaocn:JavaFXSample liumiao$ cat src/main/resources/fxml/sample.fxml liumiaocn:JavaFXSample liumiao$
注意事项:此处的fx:中的的设定需要进行设定,不然运行时无法会提示FXML相关的load的错误,非常容易陷入没有找到fxml文件的误解中,实际是运行时找到了fxml文件但是未曾找到此文件中设定的
liumiaocn:JavaFXSample liumiao$ cat pom.xml4.0.0com.liumiaocnjavademo0.0.1-SNAPSHOTjarjavafxdemoJavaFX demo projectcom.zenjavajavafx-maven-plugin8.8.3com.liumiaocn.javademo.Mainliumiaocn:JavaFXSample liumiao$
注意事项:是唯一需要设定的内容,设定入口所在类即可 。
注意事项:使用的-maven-的版本为8.8.3,为当前(2019/5/3)的最新版本 。

JavaFX基础:2:使用javafx-maven

文章插图
执行确认
执行mvn clean jfx:run即可运行
执行命令:mvn clean jfx:run
执行示例如下所示:
【JavaFX基础:2:使用javafx-maven】liumiaocn:JavaFXSample liumiao$ mvn clean jfx:run[INFO] Scanning for projects...[INFO] [INFO] -----------------------< com.liumiaocn:javademo >-----------------------[INFO] Building javafxdemo 0.0.1-SNAPSHOT[INFO] --------------------------------[ jar ]---------------------------------[INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ javademo ---[INFO] [INFO] >>> javafx-maven-plugin:8.8.3:run (default-cli) > :jar @ javademo >>>[INFO] [INFO] >>> javafx-maven-plugin:8.8.3:jar (jar) > [jfxjar]package @ javademo >>>[INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ javademo ---[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent![INFO] Copying 1 resource[INFO] [INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ javademo ---[INFO] Changes detected - recompiling the module![WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent![INFO] Compiling 2 source files to /Users/liumiao/easypack/containers/alpine/maven/demo/JavaFXSample/target/classes[INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ javademo ---[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent![INFO] skip non existing resourceDirectory /Users/liumiao/easypack/containers/alpine/maven/demo/JavaFXSample/src/test/resources[INFO] [INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ javademo ---[INFO] No sources to compile[INFO] [INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ javademo ---[INFO] No tests to run.[INFO] [INFO] --- maven-jar-plugin:2.4:jar (default-jar) @ javademo ---[INFO] Building jar: /Users/liumiao/easypack/containers/alpine/maven/demo/JavaFXSample/target/javademo-0.0.1-SNAPSHOT.jar[INFO] [INFO]