1

我正在实现一个 JavaFX 应用程序并使用Cirrus-CI进行 Github 的持续集成。

这是我的构建配置.cirrus.yml

container:
  image: maven:3.6.1-jdk-8

build_task:
  build_script: mvn clean compile test sonar:sonar

在构建期间,从已安装的 JDK 中查找 JavaFX 库时出现问题(这些错误日志行只是示例,还有更多):

[ERROR] /tmp/cirrus-ci-build/src/main/java/com/github/martinfrank/catansettler/gui/ControllerFactory.java:[4,19] package javafx.util does not exist
[ERROR] /tmp/cirrus-ci-build/src/main/java/com/github/martinfrank/catansettler/gui/alert/GameSetupAlertController.java:[6,28] package javafx.scene.control does not exist

笔记:

当然,在我当地的 DevEnvirnment 中,它正在工作......

问题:

包含带有 JavaFx 的 JDK 的正确设置(Cirrus 构建定义)是什么?(或者我在这里做错了什么?)

4

1 回答 1

1

您需要安装openjfx. 你可以这样做:

container:
  image: maven:3.6.1-jdk-8

build_task:
  install_script:
    - apt-get update 
    - apt-get install --no-install-recommends -y openjfx
  build_script: mvn clean compile test sonar:sonar

您还可以考虑使用Dockerfile 作为 CI 环境功能,并像这样创建一个 Dockerfile(.ci/Dockerfile在您的存储库中使用相对路径):

FROM maven:3.6.1-jdk-8

RUN apt-get update \
    && apt-get install --no-install-recommends -y openjfx \
    && apt-get clean \
    && rm -f /var/lib/apt/lists

你在你的.cirrus.yml

build_task:
  container:
    dockerfile: .ci/Dockerfile
  build_script: mvn clean compile test sonar:sonar

这将减少执行install脚本所需的 30-40 秒。

于 2019-06-28T12:59:29.410 回答