Неправильный контейнер: пакет 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
скрипт.