spring.profiles.include不能从命令行参数工作

时间:2017-02-08 16:12:44

标签: spring-boot

我制作了一些简单的Spring Boot应用程序并将其打包为JAR。 当我打电话

java  -jar target/boot-active-include-0.0.1-SNAPSHOT.jar

我得到了

  

未设置有效的配置文件,回退到默认配置文件:默认

当我打电话

echo spring.profiles.include=B > application.properties 
java  -jar  target/boot-active-include-0.0.1-SNAPSHOT.jar

我得到了

  

以下个人资料有效:B

当我打电话

rm application.properties
java -Dspring.profiles.include=B -jar target/boot-active-include-0.0.1-SNAPSHOT.jar

我得到了

  

未设置有效的配置文件,回退到默认配置文件:默认

但我希望以下个人资料有效:B

我可以从命令行添加Spring配置文件吗?

版本:1.5.1.RELEASE

PS。 spring.profiles.active按预期工作。但我不想替换活动配置文件。

1 个答案:

答案 0 :(得分:0)

我看到现在发生了什么,我认为这可能是我在制作this change时遗漏的东西。

在更改之前,spring.profiles.include仅在配置文件中使用时才被考虑。在此更改之后,只要spring.profiles.include也已设置,spring.profiles.active现在可以从任何来源(系统属性,命令行参数等)进行考虑。

您可以通过运行两个属性集的样本来看到这一点:

java -Dspring.profiles.include=alpha -Dspring.profiles.active=bravo -jar target/boot-active-include-0.0.1-SNAPSHOT.jar

alphabravo个人资料均处于有效状态:

2017-02-09 11:30:49.467  INFO 40409 --- [           main] my.Example                               : The following profiles are active: alpha,bravo

我已经打开an issue,以便我们能够理顺这一点。