本机编译中未使用 Quarkus 配置文件感知配置
Quarkus profile-aware config isn't used in native compilation
我正在使用 quarkus profile-aware files 为不同的配置文件设置不同的 属性 值:
- application.properties
quarkus.http.port=9090 # quarkus.http.port is just an example property
- 应用-staging.properties
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
环境变量加载正确的文件。
我正在使用 quarkus profile-aware files 为不同的配置文件设置不同的 属性 值:
- application.properties
quarkus.http.port=9090 # quarkus.http.port is just an example property
- 应用-staging.properties
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
环境变量加载正确的文件。