【问题标题】:Passing micronaut application-yml file as a CLI arg将 micronaut application-yml 文件作为 CLI arg 传递
【发布时间】:2020-12-10 21:51:31
【问题描述】:

我想知道 micronaut 是否支持可用于传递特定 application.yml 文件的 jvm arg

类似于-Dmicronaut.env.deduction=false,例如-Dmicronaut.application.yml=application-specific.yml

===============================================

更多地了解我的用例,因为可能有一种更“微型”的方式来解决我的问题:

我有一个测试,我想在本地和云端运行它
一些配置参数应该根据运行环境而有所不同

目前,Micronaut 会自动将 test 添加到环境列表中,因此本地和云测试读取相同的application-test.yaml

我还看到了TestPropertyProvider,它可用于动态设置属性,但我宁愿将我的配置保存在.yaml 文件中

【问题讨论】:

    标签: java cloud micronaut


    【解决方案1】:

    我想知道 micronaut 是否支持可用于 传递特定的 application.yml 文件

    确实如此。 JVM arg 将是 micronaut.config.files JVM 系统属性。另一种方法是您可以为MICRONAUT_CONFIG_FILES os 环境变量赋值。

    你没有问这个但它是相关的,如果测试提供PropertySource,你可以在测试本身中指定配置设置。

    所有这些都记录在https://docs.micronaut.io/2.2.1/guide/index.html#propertySource

    【讨论】:

    • 另外一个问题:我们在云中的 docker 容器中运行我们的集成测试。我们在 docker 环境变量中设置 MICRONAUT_ENVIRONMENTS=staging,以强制我们的应用程序从 application-staging.yaml 读取配置值。但是,micronaut 会自动添加“test”作为环境,然后从 application-test.yaml 中读取配置值。从文档中,与推导的环境相比,环境变量应该具有优先级。知道为什么 micronaut 优先考虑 application-test.yaml 中的值吗?
    猜你喜欢
    • 1970-01-01
    • 2019-10-08
    • 1970-01-01
    • 2017-05-27
    • 1970-01-01
    • 2018-08-07
    • 2018-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多