首页 > 解决方案 > 使用 Gradle 管理 Spring Boot 配置文件

问题描述

我有一个由 Gradle 管理的 Spring Boot 应用程序。

到目前为止做了什么:

  1. 创建application.yaml, application-dev.yaml, 和application-qa.yaml文件
  2. 中提到(如果没有提到spring: profiles: active: devapplication.yaml默认配置文件应该是)dev

需要做什么:

  1. 需要在构建war时使用提及或传递的配置文件进行构建。例如,对于 QA 构建,spring: profiles: active:应该具有 value qa,以便它可以获取application-qa.yaml属性。
  2. 如果没有通过配置文件,则默认情况下dev应选择配置文件

到目前为止尝试了什么:

  1. 添加@activeProfiles@并添加到以下代码段spring: profiles: active: @activeProfiles@中:application.yamlbuild.gradle

    processResources {
        filter org.apache.tools.ant.filters.ReplaceTokens, tokens: [
            activeProfiles: activeProfiles
        ]
    }
    

    并触发以下命令来构建war- gradlew clean build -PactiveProfiles=qa,它只是为war文件做了正确的工作。但是现在这种方法的问题是,如何在activeProfiles从 IDE 运行项目时提供默认值(我通常更喜欢main从 IntelliJ 运行类)?

我也不确定这是否是正确的方法,或者是否有任何其他方法可以完成此任务。我已经用 Maven 轻松完成了所有这些工作,但我是 Gradle 的新手,使用 Gradle 是项目要求。

标签: javaspring-bootgradlebuildprofile

解决方案


在不同环境中切换配置文件的一种常见方法是将SPRING_PROFILES_ACTIVE环境变量设置为您想要的值,然后让 Spring 引导使用它。例如,在 QA 环境中,您可以将值设置为 qa,Spring 将自动使用 qa 应用程序属性。阅读更多:https ://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-set-active-spring-profiles


推荐阅读