如何在 CI 服务器中设置不同的 graalvm-home 和 java-home 来构建原生镜像

How to set up different graalvm-home and java-home in CI server to build native image

问题: 我想在同一个 CI 服务器上有两个 graalvm 版本来构建不同的 quarkus 版本服务项目。

原因: 因为一些旧服务使用 quarkus-1.5.1 和 graalvm-20.0.0,我无法升级该版本。 但我想在新服务中使用 quarkus-1.13.1 & graalvm-21.0.0。

试过: 在 pom.xml 中添加 quarkus.native.graalvm-home & quarkus.native.java-home,设置 graalvm 路径,但不起作用。

        <properties>
            <quarkus.package.type>native</quarkus.package.type>
            <quarkus.native.additional-build-args>${qaurkusNativeArgs}</quarkus.native.additional-build-args>
            <quarkus.native.graalvm-home>${quarkus.native.java-home}</quarkus.native.graalvm-home>
            <quarkus.native.java-home>${quarkus.native.java-home}</quarkus.native.java-home>
        </properties>

您需要做的就是在 运行 mvn package -Dnative 时设置 GRAALVM_HOME 环境变量。

所以像 GRAALVM_HOME=/some/path mvn package -Dnative 这样的东西会让 Quarkus 使用来自 /some/path 的 GraalVM。

https://quarkus.io/guides/all-config#quarkus-core_quarkus.native.graalvm-home