【发布时间】:2021-05-09 00:57:46
【问题描述】:
我有一个由 Gradle 管理的 Spring Boot 应用程序。
到目前为止做了什么:
- 已创建
application.yaml、application-dev.yaml和application-qa.yaml文件 - 在
application.yaml中提到了spring: profiles: active: dev(如果没有提到,默认配置文件应该是dev)
需要做什么:
- 需要在构建时使用提及或传递的配置文件构建
war。例如,对于 QA 构建,spring: profiles: active:应该具有值qa,以便它可以获取application-qa.yaml属性。 - 如果没有通过配置文件,则默认情况下应选择
dev配置文件
到目前为止的尝试:
-
在
spring: profiles: active: @activeProfiles@在application.yaml中添加@activeProfiles@并在build.gradle中添加到sn-p 下方:processResources { filter org.apache.tools.ant.filters.ReplaceTokens, tokens: [ activeProfiles: activeProfiles ] }并触发以下命令来构建
war-gradlew clean build -PactiveProfiles=qa,它为war文件做了正确的工作。但是现在这种方法的问题是,如何在从 IDE 运行项目时为activeProfiles提供默认值(我通常更喜欢从 IntelliJ 运行main类)?
我也不确定这是否是正确的方法,或者是否有任何其他方法可以完成此任务。我已经用 Maven 轻松完成了所有这些工作,但我是 Gradle 新手,使用 Gradle 是项目要求。
【问题讨论】:
-
我没有使用过 intelliJ,但听起来你需要设置的是运行配置。你可以在那里提供默认运行参数jetbrains.com/help/idea/go-plugin-run-debug-configurations.html
-
但是我需要传递哪些参数以及如何传递?
-
stackoverflow.com/questions/2066307/… 这应该会有所帮助。在 Eclipse 中,您几乎可以提供文本
-PactiveProfiles=qa作为参数。应该和intellij类似 -
@Kasun 我试过了,但是没用
-
我已经解决了这个问题。在下面检查我的答案。
标签: java spring-boot gradle build profile