如何使用 Gradle + Spring boot 运行多个配置文件? [复制]

Posted

技术标签:

【中文标题】如何使用 Gradle + Spring boot 运行多个配置文件? [复制]【英文标题】:How can I run multiple profiles with Gradle + Spring boot? [duplicate] 【发布时间】:2020-01-21 15:04:56 【问题描述】:

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

application-qa.properties application.properties

但是,如果使用 ./gradlew -PspringProfile=qa bootRun 之类的东西运行 gradle

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

我如何像之前使用 maven 一样使用 gradle 来实现这一点?

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

有命令行选项吗?

【问题讨论】:

属性名称是spring.profiles.active,而不是springProfile @ThisIsNoZaku,已更改为默认值,但仍会选择默认值 【参考方案1】:

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

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

一个

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

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

我认为您不能将这种类型的参数放入 IntelliJ 运行配置中的“参数”列表中,但如果您愿意,您可以将其直接放入“任务”值中。但这有点奇怪。

B

通过 Gradle 运行时默认为 Gradle 构建文件中的特定环境:

bootRun 
    environment('spring.profiles.active', 'qa')

如果您在使用 Gradle 中的 bootRun 任务时总是在相同的环境中运行,这很有意义。

C

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

【讨论】:

谢谢。正在寻找选项 A

以上是关于如何使用 Gradle + Spring boot 运行多个配置文件? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

Gradle > 如何停止使用 gradle bootRun 启动的 Spring Boot 应用程序?

如何使用 gradle 6+ 和 java 11+ 在 Spring Boot 中配置 spock

如何在 Eclipse 中使用 Gradle 运行 Cucumber + Spring Boot 应用程序

Spring-boot 和 Gradle:构建时间太长 - 如何调试?

如何使用带有 gradle 的多个嵌入式服务器运行 spring-boot 集成测试

Gradle 如何打包 Spring Boot 如何不添加版本代码