【发布时间】:2023-04-10 04:32:01
【问题描述】:
我有一个 Spring Boot 项目,使用 gradle,具有三个 Spring 配置文件:
- “开发”(用于开发时)
- “test”(当我运行测试时)
- “生产”(用于在生产中部署时 [到 heroku])
因此我有四个 application*.yml 文件:
- application.yml(包含所有共享默认值)
- application-development.yml
- application-test.yml
- application-production.yml
这些环境都可以正常工作。问题是,当我将代码部署到 heroku 时,heroku 运行“gradle build”(进而运行“gradle test”),而 heroku 没有设置环境变量的选项。因此我无法设置活动配置文件。因此,当它运行测试时,它使用的是 application.yml,而没有 application-test.yml 中的覆盖。因此,测试显然失败了。
到目前为止,我唯一的解决方案是将所有 application-test.yml 默认值放入 application.yml,然后在其他配置文件中再次覆盖它们,但这显然远非理想。
有没有办法:
- 从 gradle 中设置活动 Spring 配置文件(请注意,我没有对来自“spring boot gradle 插件”的“测试”或“构建”任务的编辑权限)?
- 或者在 Spring Boot 中是否有办法在运行测试时设置默认的活动 Spring 配置文件?
【问题讨论】:
标签: spring heroku gradle spring-boot build.gradle