【发布时间】:2017-02-05 22:13:23
【问题描述】:
我有 5 个环境:
- local (my development machine)
- dev
- qc
- uat
- live
- staging
我希望为每个环境使用不同的应用程序属性,因此我有以下属性文件,每个文件都有不同的数据源 URL:
- application.properties (containing common properties)
- application-local.properties
- application-dev.properties
- application-qc.properties
- application-uat.properties
- application-live.properties
我正在使用 IntelliJ 并使用我本地计算机上 Gradle 插件中的 bootRun 运行我的应用程序。我将在所有其他运行 Tomcat 的环境中部署相同的应用程序 war 文件。
我已经尝试添加:
--spring.profiles.active=local
到脚本参数下的运行配置。
我已经尝试添加
-Dspring.profiles.active=本地
到VM选项下的运行配置。
都不行。我一直在启动时看到 INFO 消息:没有设置活动配置文件,回退到默认配置文件:默认
如果我使用
从 Windows 命令行运行我的应用程序gradle bootRun
但我先设置环境变量
set SPRING_PROFILES_ACTIVE=local
然后一切正常。
所以我的问题是,如何在从 IntelliJ 运行 bootRun 时激活我的本地 Spring Boot 配置文件?
【问题讨论】:
-
你为什么在那里通过 gradle 运行应用程序?使用运行配置岂不是方便10倍?有一个字段,您可以在其中设置配置文件以启用...
-
我在 IntelliJ 中使用运行配置,如上所述。它不工作。
-
不,你不是。我说的是“Spring Boot 运行配置” Run -> Edit configuration > New > Spring Boot。
-
啊,是的,我离开了 Spring Boot 运行配置,因为我需要在 build.gradle 中将 project.properties 扩展为 application.properties,如果我使用 Spring Boot 运行配置,它没有似乎工作。我会考虑解决这个问题,然后也许我可以按照你的建议简单地使用活动配置文件字段
-
使用 Spring Boot 配置似乎麻烦多于其价值。 “制作”只是跨资源复制,不会根据构建脚本过滤/更改它们。然后告诉它从 gradle 运行 'build' 而不是 'make' 只会导致运行冻结。如果我改用 bootRun 以及按照下面的答案输入我的环境,一切正常。
标签: spring intellij-idea gradle spring-boot