spring.profiles.active 不能从命令行工作

Posted

技术标签:

【中文标题】spring.profiles.active 不能从命令行工作【英文标题】:spring.profiles.active is not working from the command line 【发布时间】:2015-05-20 17:04:43 【问题描述】:

我正在使用 spring-boot: 1.2.2

这是docs 中提供的语法(当我开始使用该命令时,我得到Unknown command-line option '--spring.profiles.active'.

gradlew bootRun --spring.profiles.active=noAuthentication

我试过了,但是不行

gradlew bootRun -Dspring.profiles.active=noAuthentication

我在其他地方发现这应该可以,但它没有

gradlew bootRun -Drun.jvmArguments="-Dspring.profiles.active=noAuthentication"

我在 application.properties 中添加了以下内容,它可以正常工作。

spring.profiles.active=noAuthentication

如何从命令行传递这个参数?

【问题讨论】:

您将命令行参数传递给 Gradle,而不是您的 Spring Boot 应用程序。请参阅此答案以了解如何通过 Gradle bootRun ***.com/questions/25079244/… 将 args 传递给应用程序 【参考方案1】:

修复它通过

project.gradle.projectsEvaluated 
    applicationDefaultJvmArgs = ["-Dspring.profiles.active=$project.gradle.startParameter.systemPropertiesArgs['spring.profiles.active']"]

然后运行

gradlew bootRun -Dspring.profiles.active=prod

【讨论】:

以上是关于spring.profiles.active 不能从命令行工作的主要内容,如果未能解决你的问题,请参考以下文章

spring.profiles.active=@profiles.active@的含义

spring.profiles.include 跟 spring.profiles.active 的区别

使用 spring.profiles.active来区分配置

SpringBoot(十九)_spring.profiles.active=@profiles.active@ 的使用

spring.profiles.active和spring.profiles.include的使用与区别

mac下idea设置spring.profiles.active问题