Неправильный контейнер: пакет javafx.util не существует

Я реализую JavaFX-приложение и использую Cirrus-CI для непрерывной интеграции для Github.

это моя сборка-конфигурация .cirrus.yml:

container:
  image: maven:3.6.1-jdk-8

build_task:
  build_script: mvn clean compile test sonar:sonar

Во время сборки возникают проблемы с поиском библиотеки JavaFX из установленного JDK(эти строки журнала ошибок являются лишь примерами, их много и многое другое):

[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 это работает...

Вопрос:

что такое правильная настройка (определение сборки Cirrus), которая включает в себя JDK с JavaFx? (или я делаю что-то совершенно не так здесь?)

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

Это будет полоса 30-40 секунд, что занимает выполнение install скрипт.

Другие вопросы по тегам