Idea+maven-jar-plugin构建JavaFX可执行jar包

简介: Idea+maven-jar-plugin构建JavaFX可执行jar包

项目结构

.
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── pengshiyu
    │   │           ├── Controller.java
    │   │           └── Main.java
    │   └── resources
    │       ├── fxml
    │       │   └── sample.fxml
    │       └── style
    │           └── main.css
    └── test
        └── java

pom.xml


<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>org.example</groupId>
    <artifactId>demo</artifactId>
    <version>1.0-SNAPSHOT</version>
    <build>
        <plugins>
            <!-- 运行javaFX-->
            <plugin>
                <groupId>com.zenjava</groupId>
                <artifactId>javafx-maven-plugin</artifactId>
                <version>8.8.3</version>
                <configuration>
                    <mainClass>com.pengshiyu.Main</mainClass>
                </configuration>
            </plugin>
            <!-- 构建javaFX成jar-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.1.1</version>
                <configuration>
                    <archive>
                        <manifest>
                            <!-- 指定程序入口-->
                            <mainClass>com.pengshiyu.Main</mainClass>
                        </manifest>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

src/main/java/com/pengshiyu/Main.java


package com.pengshiyu;
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 {
    @Override
    public void start(Stage primaryStage) throws Exception{
        Parent root = FXMLLoader.load(getClass().getResource("/fxml/sample.fxml"));
        primaryStage.setTitle("Demo");
        primaryStage.setScene(new Scene(root, 600, 600));
        primaryStage.show();
    }
    public static void main(String[] args) {
        launch(args);
    }
}

src/main/java/com/pengshiyu/Controller.java


package com.pengshiyu;
import javafx.scene.control.Label;
public class Controller {
    public Label label;
    public void clickButton(){
        label.setText("按钮被点击了");
        System.out.println("按钮被点击了");
    }
}

src/main/resources/fxml/sample.fxml


<?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.layout.GridPane?>
<?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?>
<GridPane fx:controller="com.pengshiyu.Controller"
          stylesheets="/style/main.css"
          xmlns:fx="http://javafx.com/fxml"
          alignment="center" hgap="10" vgap="10">
    <Button mnemonicParsing="false" onAction="#clickButton" text="按钮" />
    <Label fx:id="label"  layoutX="10"/>
</GridPane>

src/main/resources/style/main.css


.label{
    -fx-text-fill: red;
}

指令

# 运行程序
mvn clean jfx:run
# 生成jar文件
mvn package

项目截图

image.png

相关文章
|
2月前
|
缓存 IDE Java
idea的maven项目打包时没有source下的文件
【10月更文挑战第21天】idea的maven项目打包时没有source下的文件
70 1
|
7月前
|
Java Linux Maven
IDEA的maven的package打包
IDEA的maven的package打包
78 1
|
Java 应用服务中间件 Maven
09Maven - 构建maven工程(Eclipse)
09Maven - 构建maven工程(Eclipse)
48 0
|
Java 应用服务中间件 Maven
解决Maven Web工程,用Eclipse导出War时,没有Lib的问题
解决Maven Web工程,用Eclipse导出War时,没有Lib的问题
151 0
|
Java Maven
使用IDEA创建基于maven的javaFX项目并使用Artifacts打包成jar
使用IDEA创建基于maven的javaFX项目并使用Artifacts打包成jar
322 0
使用IDEA创建基于maven的javaFX项目并使用Artifacts打包成jar
|
Java
Idea+maven-jar-plugin构建JavaFX可执行jar包
Idea+maven-jar-plugin构建JavaFX可执行jar包
104 0
Idea+maven-jar-plugin构建JavaFX可执行jar包
|
Java Maven
JavaFx使用maven-jar-plugin打成jar包
JavaFx使用maven-jar-plugin打成jar包
309 0
JavaFx使用maven-jar-plugin打成jar包
|
Java Apache Maven
如何在Maven中构建SWT/JFace应用并打包成可执行的jar包
前面在Maven中构建SWT应用的时候发现SWT相关jar包在Maven中央仓库上找不到,后面在stackoverflow上有人提供了一个仓库地址:https://github.com/maven-eclipse/maven-eclipse.github.io。 根据上面所说,SWT相关依赖在Maven中央仓库中不可取,目前存在的Maven仓库不包括所有平台的包,也没有源码和debug包,总之就是没有提供可信赖和自动化的方式更新和仓库再生,而Redirecting...这个仓库会自动下载并打包官方的SWT发布版本。
|
Java Maven
IntelliJ IDEA - Maven 自带 Bundled (Maven 2) 和 Bundled (Maven 3) 的文件目录位置
IntelliJ IDEA - Maven 自带 Bundled (Maven 2) 和 Bundled (Maven 3) 的文件目录位置
2471 0