java - 使用 Gradle 管理 Spring Boot 配置文件
问题描述
我有一个由 Gradle 管理的 Spring Boot 应用程序。
到目前为止做了什么:
- 创建
application.yaml
,application-dev.yaml
, 和application-qa.yaml
文件 - 中提到(如果没有提到
spring: profiles: active: dev
,application.yaml
默认配置文件应该是)dev
需要做什么:
- 需要在构建
war
时使用提及或传递的配置文件进行构建。例如,对于 QA 构建,spring: profiles: active:
应该具有 valueqa
,以便它可以获取application-qa.yaml
属性。 - 如果没有通过配置文件,则默认情况下
dev
应选择配置文件
到目前为止尝试了什么:
添加
@activeProfiles@
并添加到以下代码段spring: profiles: active: @activeProfiles@
中:application.yaml
build.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 是项目要求。
解决方案
在不同环境中切换配置文件的一种常见方法是将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
推荐阅读
- node.js - nodejs express res.send 以完整路径为名称下载文件
- php - 在 Laravel 中单击提交时重复的表单验证错误
- ios - 为什么应用程序在发布模式下显示白屏?
- javascript - 如何在 Django 中使用 JavaScript 获取图表的值?
- svg - SVG d3 中带阴影的箭头标记
- node.js - 无服务器/无状态环境中的 Gatsby 预览服务器
- google-cloud-platform - 按凭据 ID 对 API 端点的指标分组不适用于 JWTtokens
- eclipse - Eclipse Tomcat 文件部署
- python-3.x - 使用 boto3 检查 AWS Lambda 是否正在执行中
- docker - 在 docker run 命令中传递参数