第 3 章 原生可执行配置属性
配置属性定义如何生成原生可执行文件。您可以使用 application.properties 文件配置 Quarkus 应用程序。
配置属性
下表列出了您可以设置的配置属性,以定义如何生成原生可执行文件:
| 属性 | 描述 | 类型 | Default(默认) |
|---|---|---|---|
|
| 传递给构建过程的其他参数。 | 字符串列表 | |
|
| 启用 HTTP URL 处理程序。这可让您为 HTTP URL 进行 URL.openConnection ()。 | 布尔值 |
|
|
| 启用 HTTPS URL 处理程序。这可让您为 HTTPS URL 执行 URL.openConnection ()。 | 布尔值 |
|
|
| 将所有安全服务添加到原生镜像。 | 布尔值 |
|
|
| 将所有字符集添加到原生镜像。这会增加镜像大小。 | 布尔值 |
|
|
| 包含 Graal 分发的路径。 | 字符串 |
|
|
| 包含 JDK 的路径。 |
| |
|
| 用于生成原生镜像的最大 Java 堆。 | 字符串 | |
|
| 在运行原生镜像构建前,等待调试器附加到构建过程。这是熟悉 GraalVM 内部的用户的高级选项。 | 布尔值 |
|
|
| 使用 docker 构建和 debug-build-process 为 true 时发布调试端口。 | 布尔值 |
|
|
| 重启原生镜像服务器。 | 布尔值 |
|
|
| 启用隔离以改进内存管理。 | 布尔值 |
|
|
| 如果原生镜像失败,则创建基于 JVM 的回退镜像。 | 布尔值 |
|
|
| 使用原生镜像服务器。这可能会加快编译速度,但可能导致因为缓存不一致的问题而丢弃更改。 | 布尔值 |
|
|
| 自动注册所有 META-INF/services 条目。 | 布尔值 |
|
|
| 转储所有代理进行检查的字节码。 | 布尔值 |
|
|
| 使用容器运行时构建。Docker 默认使用。 | 布尔值 |
|
|
| 构建镜像的 docker 镜像。 | 字符串 |
|
|
| 用于构建镜像的容器运行时。例如,Docker。 | 字符串 | |
|
| 传递给容器运行时的选项。 | 字符串列表 | |
|
| 在镜像中启用虚拟机内省。 | 布尔值 |
|
|
| 在镜像中启用完整的堆栈跟踪。 | 布尔值 |
|
|
| 生成调用路径和包含的软件包/类/方法的报告。 | 布尔值 |
|
|
| 报告带有完整堆栈追踪的例外。 | 布尔值 |
|
|
| 在运行时报告错误。如果您使用不支持的功能,这可能会导致您的应用程序在运行时失败。 | 布尔值 |
|
|
|
以逗号分隔的 globs 列表,以匹配应添加到原生镜像的资源路径。在所有平台上使用斜杠( | 字符串列表 | |
|
|
启用调试并在单独的 .debug 文件中生成调试符号。与 | 布尔值 |
|
支持的 glob 功能及其描述
下表列出了支持的 glob 功能及其描述:
| 字符 | 功能描述 |
|
|
匹配不含斜杠( |
|
|
匹配可能包含斜杠( |
|
| 匹配一个字符,但不匹配斜杠。 |
|
| 匹配括号中指定的范围中的一个字符,但不匹配斜杠。 |
|
| 匹配括号中指定的范围中的一个字符,但不匹配斜杠。 |
|
| 匹配括号中没有指定的字符;不匹配斜杠。 |
|
| 匹配括号中指定的范围之外的一个字符;不匹配斜杠。 |
|
| 匹配用逗号分开的任何更改令牌;令牌可能包含通配符、嵌套更改和范围。 |
|
|
转义字符。有三个转义级别: |
3.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 -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.native-image-xmx=<maximum_memory>
mvn -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.native-image-xmx=<maximum_memory>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此命令使用 Docker 构建原生可执行文件。添加
-Dquarkus.native.container-runtime=podman参数以使用 Podman。
例如,要将内存限制设置为 6 GB,请输入 quarkus.native.native-image-xmx=6g。该值必须是大于 2MB 的 1024 的倍数。附加字母 m 或 M 以表示 MB,或 g 或 G 来表示 GB。