我有 application.yml
、application-dev.yml
和application-dev.yml
- 我正在使用 maven 命令
mvn spring-boot:run -Dspring.profiles.active=dev
它不起作用,我无法使用mvn spring 选择开发配置文件-启动:运行
。我该如何选择? - 文档说
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
那么如何解决两个问题呢?谢谢~
最佳答案
我不确定我是否完全理解这个问题,但我会尝试通过提供有关 Spring Boot 中的配置文件的一些详细信息来回答。
对于您的 #1 示例,根据文档,您可以使用 Spring Boot Maven 插件使用 -Drun.profiles
选择配置文件。
编辑:对于 Spring Boot 2.0+,run
已重命名为 spring-boot.run
和 run.profiles
已重命名为 spring-boot.run.profiles
mvn spring-boot:run -Dspring-boot.run.profiles=dev
https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/maven-plugin/examples/run-profiles.html
从您的#2 示例中,您在 jar 名称之后定义 Activity 配置文件。您需要在您正在运行的 jar 名称之前提供 JVM 参数。
java -jar -Dspring.profiles.active=dev XXX.jar
一般信息:
你提到你有一个 application.yml
和一个 application-dev.yml
。使用 dev
配置文件运行实际上会加载 both 配置文件。 application-dev.yml
中的值将覆盖 application.yml
提供的相同值,但两个 yml
文件中的值将被加载。
还有多种方法可以定义 Activity 配置文件。
您可以像以前一样定义它们,在运行 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
关于java - 如何使用 Spring Boot 配置文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40060989/