"dev" 配置覆盖 Quarkus 中的 "test" 配置
"dev" config overrides "test" config in Quarkus
在我的 Quarkus 应用程序中,我不希望密码由 Git 进行版本控制。
我对 prod
配置文件没有任何问题,因为我在 $PWD/config/application.properties
中有一个配置文件。很好
对于 dev
配置文件,我使用的是 .env
方法,其中包含如下属性:
QUARKUS_DATASOURCE_PASSWORD=foo
我正在尝试设置测试,我需要一些单独的 conf 来进行测试。
所以我的 src/test/resources/application.properties
中有以下配置:
%test.quarkus.datasource.password=bar
不幸的是,测试值 (bar
) 被应该专用的 .env
值 (foo
) 覆盖到 dev
个人资料。
我找不到修复它的优雅方法。
基于https://quarkus.io/guides/config#overriding-properties-at-runtime我有5种可能的方法:
- "using system properties":我更希望有一个文件,这样每个开发人员都可以有自己的文件,而无需在启动前调整命令行;
- "using environment variables":同理;
.env
文件:可以工作,但我不能仅为 dev
配置文件指定值(又名 %dev.[...]
);
$PWD/config/application.properties
文件:好吧,这是针对开发模式的,我觉得它不方便,因为目标已清除,我必须在每个 [=28= 之后再次复制 config
文件夹];
- 创建我自己的
ConfigSource
或 ConfigSourceProvider
。我知道这个可以工作,但我更愿意避免在我的项目中做特定的事情,并继续使用内置的 Quarkus 配置。
我刚刚发现我错了:
.env
file: Could work, but I can't specifiy value for dev profile only (aka %dev.[...]
) ;
可以在 .env
文件中包含自定义配置文件值:
_DEV_QUARKUS_DATASOURCE_PASSWORD=foo
因为我可以在 属性 前加上 _DEV_[...]
,这个值仅适用于 dev
配置文件:test
属性 不再被覆盖。
在我的 Quarkus 应用程序中,我不希望密码由 Git 进行版本控制。
我对 prod
配置文件没有任何问题,因为我在 $PWD/config/application.properties
中有一个配置文件。很好
对于 dev
配置文件,我使用的是 .env
方法,其中包含如下属性:
QUARKUS_DATASOURCE_PASSWORD=foo
我正在尝试设置测试,我需要一些单独的 conf 来进行测试。
所以我的 src/test/resources/application.properties
中有以下配置:
%test.quarkus.datasource.password=bar
不幸的是,测试值 (bar
) 被应该专用的 .env
值 (foo
) 覆盖到 dev
个人资料。
我找不到修复它的优雅方法。
基于https://quarkus.io/guides/config#overriding-properties-at-runtime我有5种可能的方法:
- "using system properties":我更希望有一个文件,这样每个开发人员都可以有自己的文件,而无需在启动前调整命令行;
- "using environment variables":同理;
.env
文件:可以工作,但我不能仅为dev
配置文件指定值(又名%dev.[...]
);$PWD/config/application.properties
文件:好吧,这是针对开发模式的,我觉得它不方便,因为目标已清除,我必须在每个 [=28= 之后再次复制config
文件夹];- 创建我自己的
ConfigSource
或ConfigSourceProvider
。我知道这个可以工作,但我更愿意避免在我的项目中做特定的事情,并继续使用内置的 Quarkus 配置。
我刚刚发现我错了:
.env
file: Could work, but I can't specifiy value for dev profile only (aka%dev.[...]
) ;
可以在 .env
文件中包含自定义配置文件值:
_DEV_QUARKUS_DATASOURCE_PASSWORD=foo
因为我可以在 属性 前加上 _DEV_[...]
,这个值仅适用于 dev
配置文件:test
属性 不再被覆盖。