我正在实现JavaFX-Application,并使用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中,它正在运行...
什么是正确的设置(Cirrus构建定义),其中包括带有JavaFx的JDK? (或者我在这里做错了吗?)
答案 0 :(得分: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 as a CI environment功能并创建这样的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
脚本。