使用JavaFX时,Gitlab上的Maven构建失败

时间:2019-03-04 10:36:48

标签: java git maven javafx gitlab

我正在做一个Maven Java项目,作为学校作业。我们必须使用Gitlab来存储我们的工作并与队友合作。

在这个项目之前,我没有听说过Maven或Gitlab(尽管我在过去的项目中使用过Git和Github),所以我不确定我是否犯了明显的错误,或者我错过了研究中必不可少的东西,所以请原谅。

我正在使用JavaFX for GUI,包括一个名为JFoenix的存储库,该存储库已作为依赖项添加到pom.xml文件中。在我的IDE(Jetbrains)中,该项目的构建和执行没有错误,所有测试均通过,并且一切都按预期进行。

但是,当我提交到Gitlab时,任何提交都会失败,因为Maven无法在Gitlab中构建应用程序。这是错误:

[ERROR] COMPILATION ERROR :
[INFO] -------------------------------------------------------------
[ERROR] /tmp/build/src/main/java/application/controllers/AppFrameController.java:[5,19] error: cannot access ActionEvent
[INFO] 1 error
[INFO] -------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] -------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.5:compile (default-compile) on project OOP-Project: Compilation failure
[ERROR] /tmp/build/src/main/java/application/controllers/AppFrameController.java:[5,19] error: cannot access ActionEvent

由于这些错误,我认为构建失败,因为Gitlab由于某种原因无法识别JavaFX类ActionEvent。这是与我所有导入的AppFrameController类相对应的代码部分:

import com.jfoenix.controls.JFXButton;
import javafx.event.ActionEvent; //This is the line causing the error
import javafx.fxml.FXML;
import javafx.fxml.FXMLLoader;
import javafx.scene.Node;
import javafx.scene.Parent;
import javafx.scene.layout.AnchorPane;
import javafx.stage.Popup;
import javafx.stage.Stage;
import java.io.IOException;

第一次导入是针对JFoenix类的,并且不会触发任何有意义的错误,因为JFeonix作为依赖项包含在内。我发现也许Java Gitlab使用的版本不包括JavaFX,所以我还在pom.xml中添加了JavaFX库作为依赖项:

    <dependency>
        <groupId>com.jfoenix</groupId>
        <artifactId>jfoenix</artifactId>
        <version>8.0.8</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>11.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-base</artifactId>
        <version>11.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-graphics</artifactId>
        <version>11.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-media</artifactId>
        <version>11.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-web</artifactId>
        <version>11.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-swing</artifactId>
        <version>11.0.2</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-fxml</artifactId>
        <version>11.0.2</version>
    </dependency> 

这不能解决问题,并且在Gitlab中我仍然遇到相同的错误和构建失败。我不明白为什么会这样,因为我将JavaFX添加为依赖项,所以我的应用程序不应该访问ActionEvent类吗?此外,到目前为止,我的控制器类几乎几乎每一个都导入ActionEvent类,而AppFrameController是唯一一个在Gitlab上产生错误的类。

一些其他信息:

在我的IDE中,Project SDK是jdk 1.8

语言级别设置为8。我不确定这些是否重要。

如果有人可以向我解释为什么在Mitlab上而不是在我的IDE中会发生这种Maven构建故障,那么我将非常感激。

0 个答案:

没有答案