如何使用 Gradle + Spring 启动 运行 多个配置文件?

How can I run multiple profiles with Gradle + Spring boot?

我正在尝试从 maven 中学习使用 gradle 和 springboot,所以我想知道如何 运行 我的项目在命令行中获取不同的配置文件。 这里的场景是我有我的属性,例如。

application-qa.properties and application.properties

但是如果 运行 gradle 与 ./gradlew -PspringProfile=qa bootRun

它只加载 application.properties 中的默认属性,而不加载 qa 属性。

如何像以前使用 maven 一样使用 gradle 完成此操作?

这是我试过的。 我在 IntelliJ 中创建了 gradle 运行 配置,但这也没有用,

有命令行选项吗?

首先,正如另一位用户在对您问题的评论中所说,您没有使用正确的参数名称。

但此外,您无法通过 属性 到 -P 项目设置活动配置文件(至少不是开箱即用)。您还有其他一些选择。

一个

像这样使用 --spring.profiles.active=qa 作为参数:

gradlew bootRun --args='--spring.profiles.active=qa'

虽然我认为您不能将这种类型的参数放入 IntelliJ 运行 配置中的 "arguments" 列表中,但您可以将其直接放入 "tasks" 值中相反,如果你喜欢。但这有点奇怪。

B

当 运行 虽然 Gradle:

时,Gradle 构建文件中默认为特定环境
bootRun {
    environment('spring.profiles.active', 'qa')
}

如果您在 Gradle.

中使用 bootRun 任务时总是针对相同的环境 运行,这就有意义了

C

在本地计算机或 IntelliJ 运行 配置中设置环境变量 spring.profiles.active=qa