小编典典

在 Spring Boot 中从命令行设置活动配置文件和配置位置

all

我有一个弹簧启动应用程序。

我的 application-> development, staging and production 中有三个配置文件。所以我有3个文件

  1. 应用程序开发.yml
  2. 应用程序-staging.yml
  3. 应用程序生产.yml

我的 application.yml 位于src/main/resources. 我已将 application.yml
中的活动配置文件设置为:

spring:
  profiles.active: development

其他 3 个配置文件特定的配置文件存在于C:\config文件夹中。

我正在为 Eclipse 使用 gradle 插件。当我尝试执行“ bootRun ”时,我在 eclipse 的 gradle
配置中将命令行参数设置为

 -Dspring.profiles.active=staging -Dspring.config.location=C:\Config

但是,命令行属性没有得到反映,我的活动配置文件总是被设置为开发(这是我在 applications.yml 文件中提到的那个)。此外,不会在
C:\Config 文件夹中搜索配置文件特定的配置文件。

我想我在这里遗漏了一些东西。在过去的两天里,我一直在试图弄清楚。但没有运气。我真的很感激任何帮助。


阅读 74

收藏
2022-05-16

共1个答案

小编典典

我不得不添加这个:

bootRun {
    String activeProfile =  System.properties['spring.profiles.active']
    String confLoc = System.properties['spring.config.location']
    systemProperty "spring.profiles.active", activeProfile
    systemProperty "spring.config.location", "file:$confLoc"
}

现在 bootRun 获取配置文件和配置位置。

非常感谢@jst 的指针。

2022-05-16