第 3 章 原生可执行配置属性


配置属性定义如何生成原生可执行文件。您可以使用 application.properties 文件配置 Quarkus 应用程序。

配置属性

下表列出了您可以设置的配置属性,以定义如何生成原生可执行文件:

Expand
属性描述类型Default(默认)

quarkus.native.additional-build-args

传递给构建过程的其他参数。

字符串列表

 

quarkus.native.enable-http-url-handler

启用 HTTP URL 处理程序。这可让您为 HTTP URL 进行 URL.openConnection ()。

布尔值

true

quarkus.native.enable-https-url-handler

启用 HTTPS URL 处理程序。这可让您为 HTTPS URL 执行 URL.openConnection ()。

布尔值

false

quarkus.native.enable-all-security-services

将所有安全服务添加到原生镜像。

布尔值

false

quarkus.native.add-all-charsets

将所有字符集添加到原生镜像。这会增加镜像大小。

布尔值

false

quarkus.native.graalvm-home

包含 Graal 分发的路径。

字符串

${GRAALVM_HOME:}

quarkus.native.java-home

包含 JDK 的路径。

File

${java.home}

quarkus.native.native-image-xmx

用于生成原生镜像的最大 Java 堆。

字符串

 

quarkus.native.debug-build-process

在运行原生镜像构建前,等待调试器附加到构建过程。这是熟悉 GraalVM 内部的用户的高级选项。

布尔值

false

quarkus.native.publish-debug-build-process-port

使用 docker 构建和 debug-build-process 为 true 时发布调试端口。

布尔值

true

quarkus.native.cleanup-server

重启原生镜像服务器。

布尔值

false

quarkus.native.enable-isolates

启用隔离以改进内存管理。

布尔值

true

quarkus.native.enable-fallback-images

如果原生镜像失败,则创建基于 JVM 的回退镜像。

布尔值

false

quarkus.native.enable-server

使用原生镜像服务器。这可能会加快编译速度,但可能导致因为缓存不一致的问题而丢弃更改。

布尔值

false

quarkus.native.auto-service-loader-registration

自动注册所有 META-INF/services 条目。

布尔值

false

quarkus.native.dump-proxies

转储所有代理进行检查的字节码。

布尔值

false

quarkus.native.container-build

使用容器运行时构建。Docker 默认使用。

布尔值

false

quarkus.native.builder-image

构建镜像的 docker 镜像。

字符串

registry.access.redhat.com/quarkus/mandrel-20-rhel8:20.3

quarkus.native.container-runtime

用于构建镜像的容器运行时。例如,Docker。

字符串

 

quarkus.native.container-runtime-options

传递给容器运行时的选项。

字符串列表

 

quarkus.native.enable-vm-inspection

在镜像中启用虚拟机内省。

布尔值

false

quarkus.native.full-stack-traces

在镜像中启用完整的堆栈跟踪。

布尔值

true

quarkus.native.enable-reports

生成调用路径和包含的软件包/类/方法的报告。

布尔值

false

quarkus.native.report-exception-stack-traces

报告带有完整堆栈追踪的例外。

布尔值

true

quarkus.native.report-errors-at-runtime

在运行时报告错误。如果您使用不支持的功能,这可能会导致您的应用程序在运行时失败。

布尔值

false

quarkus.native.resources.includes

以逗号分隔的 globs 列表,以匹配应添加到原生镜像的资源路径。在所有平台上使用斜杠(/)作为路径分隔符。globs 不得以斜杠开头。例如,您的源树中有 src/main/resources/ignored.pngsrc/main/resources/foo/selected.png,其中一个依赖项 JAR 包含 bar/some.txt 文件,以下配置为 quarkus.native.resources.includes = foo/,bar/eXecut.txt 文件,文件 src/main/resources/foo/selected.pngbar/some.txt 将包含在原生镜像中 虽然 src/main/resources/ignored.png 不会被包含。要了解更多有关 glob 功能的信息,请参阅支持的 glob 功能及其描述

字符串列表

 

quarkus.native.debug.enabled

启用调试并在单独的 .debug 文件中生成调试符号。与 quarkus.native.container-build 一起使用时,红帽构建的 Quarkus 只支持 Red Hat Enterprise Linux 或其他 Linux 发行版,因为它们包含 binutils 软件包,该软件包会安装 objcopy 实用程序,以从原生镜像分离调试信息。

布尔值

false

支持的 glob 功能及其描述

下表列出了支持的 glob 功能及其描述:

Expand

字符

功能描述

*

匹配不含斜杠(/)的字符的空序列。

**

匹配可能包含斜杠(/)的字符的空字符序列。

?

匹配一个字符,但不匹配斜杠。

[abc]

匹配括号中指定的范围中的一个字符,但不匹配斜杠。

[a-z]

匹配括号中指定的范围中的一个字符,但不匹配斜杠。

[!ABC]

匹配括号中没有指定的字符;不匹配斜杠。

[a-z]

匹配括号中指定的范围之外的一个字符;不匹配斜杠。

{one,two,three}

匹配用逗号分开的任何更改令牌;令牌可能包含通配符、嵌套更改和范围。

\

转义字符。有三个转义级别: application.properties parser、MicroProfile Config list converter 和 Glob parser。所有这三个级别都使用反斜杠作为转义字符。

3.1. 为 Quarkus 原生编译配置内存消耗

在分析和优化过程中,将 Quarkus 应用程序编译到原生可执行文件中会消耗大量内存。您可以通过设置 quarkus.native.native-image-xmx 配置属性来限制原生编译过程中使用的内存量。设置低内存限值可能会增加构建时间。

流程

  • 使用以下方法之一为 quarkus.native.native-image-xmx 属性设置值,以便在原生镜像构建期间限制内存消耗:

    • 使用 application.properties 文件:

      quarkus.native.native-image-xmx=<maximum_memory>
      Copy to Clipboard Toggle word wrap
    • 设置系统属性:

      mvn -Pnative -Dquarkus.native.container-build=true -Dquarkus.native.native-image-xmx=<maximum_memory>
      Copy to Clipboard Toggle word wrap

      此命令使用 Docker 构建原生可执行文件。添加 -Dquarkus.native.container-runtime=podman 参数以使用 Podman。

注意

例如,要将内存限制设置为 6 GB,请输入 quarkus.native.native-image-xmx=6g。该值必须是大于 2MB 的 1024 的倍数。附加字母 m 或 M 以表示 MB,或 g 或 G 来表示 GB。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat
返回顶部