1.4. 原生可执行配置属性
配置属性定义如何生成原生可执行文件。您可以使用 application.properties 文件配置 Quarkus 应用程序。
配置属性
下表列出了您可以设置的配置属性来定义如何生成原生可执行文件:
| 属性 | 描述 | 类型 | default |
|
|
在单独的 | 布尔值 |
|
|
| 以逗号分隔的 glob 列表,以匹配不应添加到原生镜像的资源路径。 | 字符串列表 | |
|
| 传递给构建过程的其他参数。 | 字符串列表 | |
|
|
启用 HTTP URL 处理程序,您可以在其中为 HTTP URL 进行 | 布尔值 |
|
|
|
启用 HTTPS URL 处理程序,您可以在其中为 HTTPS URL 进行 | 布尔值 |
|
|
| 将所有安全服务添加到原生镜像。 | 布尔值 |
|
|
| 将所有字符集添加到原生镜像。这会增加镜像大小。 | 布尔值 |
|
|
| 包含 GraalVM 发行版的路径。 | string |
|
|
| 包含 JDK 的路径。 | file |
|
|
| 用于生成原生镜像的最大 Java 堆。 | string | |
|
| 在运行原生镜像构建前,等待调试器附加到构建过程。对于那些熟悉 GraalVM 内部的用户,这是一个高级选项。 | 布尔值 |
|
|
|
如果 | 布尔值 |
|
|
| 重启原生镜像服务器。 | 布尔值 |
|
|
| 启用隔离以提高内存管理。 | 布尔值 |
|
|
| 如果原生镜像失败,则创建基于 JVM 的回退镜像。 | 布尔值 |
|
|
| 使用原生镜像服务器。这可加快编译速度,但可能会导致因为缓存无效问题而丢失更改。 | 布尔值 |
|
|
|
自动注册所有 | 布尔值 |
|
|
| 转储所有代理的字节码进行检查。 | 布尔值 |
|
|
| 使用容器运行时的构建。Docker 被默认使用。 | 布尔值 |
|
|
| 要构建镜像的 Docker 镜像。 | string |
|
|
| 用于构建镜像的容器运行时。例如,Docker。 | string | |
|
| 传递给容器运行时的选项。 | 字符串列表 | |
|
| 在镜像中启用虚拟机内省。 | 布尔值 |
|
|
| 在镜像中启用完整堆栈跟踪。 | 布尔值 |
|
|
| 生成调用路径以及包含的软件包、类或方法的报告。 | 布尔值 |
|
|
| 报告具有完整堆栈追踪的例外情况。 | 布尔值 |
|
|
| 在运行时报告错误。如果您使用不支持的功能,这可能会导致应用程序在运行时失败。 | 布尔值 |
|
|
|
以逗号分隔的 glob 列表,以匹配应添加到原生镜像的资源路径。使用斜杠( | 字符串列表 |
在构建配置中,如果要包含共享项目中通用模式或位置的一组文件或资源,您可以使用 glob 模式。
例如,如果您有一个包含多个配置文件的目录,您可以使用 glob 模式来包含该目录中的所有文件。
例如:
quarkus.native.resources.includes = my/config/files/*
quarkus.native.resources.includes = my/config/files/*
以下示例显示了以逗号分隔的 glob 列表,以匹配要添加到原生镜像的资源路径。这些模式会导致将 classpath 上找到的任何 .png 镜像添加到原生镜像,以及在文件夹栏下以 .txt 结尾的所有文件,即使嵌套在子目录中:
quarkus.native.resources.includes = **/*.png,bar/**/*.txt
quarkus.native.resources.includes = **/*.png,bar/**/*.txt
支持的 glob 功能
下表列出了支持的 glob 功能和描述:
| character | 功能描述 |
|
|
匹配不包含斜杠( |
|
|
匹配可能包含斜杠( |
|
| 匹配一个字符,但不匹配斜杠。 |
|
| 匹配括号中指定的字符,但不匹配斜杠。 |
|
| 匹配括号中指定的范围内的一个字符,但不匹配斜杠。 |
|
| 匹配括号中未指定的字符; 不匹配斜杠。 |
|
| 匹配括号中指定的范围之外的一个字符; 不匹配斜杠。 |
|
| 匹配以逗号分开的修改错误令牌;令牌可以包含通配符、嵌套更改和范围。 |
|
|
转义字符。escaping 有三个级别: |
1.4.1. 为红帽构建的 Quarkus 原生编译配置内存消耗 复制链接链接已复制到粘贴板!
将红帽构建的 Quarkus 应用程序编译到原生可执行文件,会在分析和优化过程中消耗大量内存。您可以通过设置 quarkus.native.native-image-xmx 配置属性来限制原生编译过程中使用的内存量。设置较低的内存限值可能会增加构建时间。
流程
使用以下方法之一为
quarkus.native.native-image-xmx属性设置值,在原生镜像构建过程中限制内存消耗:使用
application.properties文件:quarkus.native.native-image-xmx=<maximum_memory>
quarkus.native.native-image-xmx=<maximum_memory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置系统属性:
mvn package -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.native-image-xmx=<maximum_memory>
mvn package -Dnative -Dquarkus.native.container-build=true -Dquarkus.native.native-image-xmx=<maximum_memory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令使用 Docker 构建原生可执行文件。要使用 Podman,请添加 the
-Dquarkus.native.container-runtime=podman参数。
例如,要将内存限制设置为 8 GB,请输入 quarkus.native.native-image-xmx=8g。该值必须是 1024 的倍数,且大于 2MB。附加字母 m 或 M 以表示 MB 或 g 或 G 以指示千兆字节。