本机编译中未使用 Quarkus 配置文件感知配置

Quarkus profile-aware config isn't used in native compilation

我正在使用 quarkus profile-aware files 为不同的配置文件设置不同的 属性 值:

quarkus.http.port=9090 # quarkus.http.port is just an example property
quarkus.http.port=9190

如果我不启用本机图像编译,这会起作用:如果 QUARKUS_PROFILE 环境变量是 staging,Quarkus 将选择正确的 属性 值(即 9190).

然而,当我进行本地编译时 (quarkus.package.type=native) 似乎 quarkus 使用的是默认值 (9090);配置文件感知文件被本机二进制文件忽略。 “属性 名称中的配置文件”仍然有效(即 application.properties 中的 %staging.quarkus.http.port=9190)。

这是预期的行为吗?或者我缺少什么让本机编译处理配置文件感知文件?

使用 getting-started 快速入门并添加 application-dummy.properties

quarkus.http.port=9090

当我使用  mvn package -DskipTests -Dquarkus.profile=dummy -Dnative

构建应用程序时

然后当我 运行 它时,它按预期在端口 9090 上启动

我通过在 application.properties 中添加以下行解决了这个问题:

quarkus.native.resources.includes=*.properties

这会导致本机编译过程包含资源中的所有 application-*.properties 文件,因此 Quarkus 可以在运行时根据 QUARKUS_PROFILE 环境变量加载正确的文件。