我有 application.yml
, application-dev.yml
和 application-dev.yml
- 我正在使用 maven 命令
mvn spring-boot:run -Dspring.profiles.active=dev
它不起作用,我无法使用mvn spring-boot:run
选择开发配置文件。我该如何选择它? - 文档说
java -jar XXX.jar --spring.profiles.active=dev
有效,我尝试了-Dspring.profiles.active=dev
但它不起作用。在我的项目中,我使用java -jar XXX.jar
它运行,但是如果我使用java -jar XXX.jar --spring.profiles.active=dev
来选择开发配置文件,控制台会打印很多日志并警告我从未见过使用过的java -jar XXX.jar
,告诉我APPLICATION FAILED TO START
那么如何解决两个问题呢?谢谢~
原文由 twogoods 发布,翻译遵循 CC BY-SA 4.0 许可协议
我不确定我是否完全理解这个问题,但我会尝试通过提供有关 Spring Boot 中的配置文件的一些详细信息来回答。
对于您的 #1 示例,根据文档,您可以使用
-Drun.profiles
使用 Spring Boot Maven 插件选择配置文件。Edit : For Spring Boot 2.0+
run
has been renamed tospring-boot.run
andrun.profiles
has been renamed tospring-boot.run.profiles
https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/maven-plugin/examples/run-profiles.html
在您的 #2 示例中,您在 jar 名称之后定义活动配置文件。您需要在运行的 jar 名称之前提供 JVM 参数。
基本信息:
您提到您同时拥有
application.yml
和application-dev.yml
。使用dev
配置文件运行实际上将加载 两个 配置文件。来自application-dev.yml
的值将覆盖application.yml
提供的相同值,但来自两个yml
文件的值将被加载。还有多种方法可以定义活动配置文件。
您可以像以前那样定义它们,在运行 jar 时使用
-Dspring.profiles.active
。您还可以使用SPRING_PROFILES_ACTIVE
环境变量或spring.profiles.active
系统属性来设置配置文件。更多信息可以在这里找到: https ://docs.spring.io/spring-boot/docs/current/reference/html/howto.html#howto-set-active-spring-profiles