容器错误:包 javafx.util 不存在
wrong container: package javafx.util does not exist
我正在实施 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 中,它正在工作...
问题:
包含 JDK 和 JavaFx 的正确设置(Cirrus 构建定义)是什么?
(或者我在这里做错了什么?)
您需要安装 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
这将减少执行 install
脚本所需的 30-40 秒。
我正在实施 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 中,它正在工作...
问题:
包含 JDK 和 JavaFx 的正确设置(Cirrus 构建定义)是什么? (或者我在这里做错了什么?)
您需要安装 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
这将减少执行 install
脚本所需的 30-40 秒。