如何在Maven中创建javaFX项目

8yoxcaq7  于 2023-08-02  发布在  Java
关注(0)|答案(1)|浏览(113)

我试图在maven中创建javafx项目,我已经添加了此依赖项

<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.tensorApplication</groupId>
<artifactId>billingWizard</artifactId>
<version>0.0.1-SNAPSHOT</version>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <javafx.version>17.0.1</javafx.version>
    <javafx.maven.plugin.version>0.0.8</javafx.maven.plugin.version>
</properties>

<dependencies>

    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>${javafx.version}</version>
    </dependency>

</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-maven-plugin</artifactId>
            <version>0.0.8</version>
            <configuration>
                <mainClass>com.tensorApplications.jBills.Main.java</mainClass>
            </configuration>
        </plugin>

    </plugins>
</build>

我已经添加了主类和简单的buiding和运行我得到了很多错误,请有人可以为我提供更好的方法来创建maven项目与javafx在eclips

uqjltbpv

uqjltbpv1#

我假设您的项目是按照Maven项目的传统方式进行结构化的,Java源代码在src/main/java中,资源在src/main/resources中。
下面是一个用于JavaFX 17应用程序的简单Maven pom.xml:

<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>com.tensorApplications</groupId>
<artifactId>billingWizard</artifactId>
<version>1.0-SNAPSHOT</version>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>17</maven.compiler.source>
    <maven.compiler.target>17</maven.compiler.target>
    <javafx.version>17.0.1</javafx.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>${javafx.version}</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-fxml</artifactId>
        <version>${javafx.version}</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
        </plugin>
        <plugin>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-maven-plugin</artifactId>
            <version>0.0.8</version>
            <configuration>
                <mainClass>com.tensorApplications.billingWizard.Main</mainClass>
            </configuration>
        </plugin>
    </plugins>
</build>

字符串
javafx-maven-plugin中的主类配置应该只是类的完全限定名(package.classname),而不带.java扩展名
在Main.java文件(应该位于com.tensorApplications.billingWizard包中)中,需要从javafx.application.Application扩展并覆盖start方法。这是一个简单的例子:

package com.tensorApplications.billingWizard;
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.stage.Stage;

public class Main extends Application {

    @Override
    public void start(Stage primaryStage) {
        primaryStage.setTitle("Hello World!");
        primaryStage.setScene(new Scene(new Label("Hello World!"), 300, 250));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}


编译:mvn compile
运行:mvn javafx:run
您还应该在对pom.xml文件进行更改后刷新Eclipse项目:右键单击项目浏览器中的项目并选择Maven > UpdateProject....

相关问题