我正在尝试使用
java -jar sample.jar
命令运行我的 JAR 文件,并且我正在使用 application.yml
配置文件并进行以下设置
spring:
profiles:
active:
- dev
---
server:
port: 8081
spring:
profiles: dev
---
server:
port: 8082
spring:
profiles: test
但是应用程序无法识别返回信息的个人资料
No active profile set, falling back to default profiles: default
并将端口设置为默认8080
我尝试过类似的事情
java -jar sample.jar -Drun.jvmArguments=-Dspring.profiles.active=dev
或java -jar sample.jar -Dspring.profiles.active=dev
在我的
pom.xml
文件中,我所做的唯一更改是添加 <packaging>jar</packaging>
属性。
据我所知,maven 配置文件是完全不同的东西,不应该影响 spring 配置文件。
我不知道在哪里寻找问题,因为当我通过 Intellij IDEA 中的 Run 按钮启动应用程序时,它运行良好,并识别设置为活动的每个配置文件。
这里的实际问题是如何在构建工件时设置要运行的默认配置文件,因此无需在运行 jar 的终端命令中放置额外的标志。
我知道有很多像我这样的问题,但他们接受的大多数答案在我的情况下不起作用,其余的也没有得到解答。如果您知道这里可能存在什么问题,请告诉我。预先感谢您的帮助!
您可以通过命令行参数激活配置文件。在您的尝试中,您在 jar 名称之后定义活动配置文件。您需要在正在运行的 jar 名称之前提供程序参数。
java -jar -Dspring.profiles.active=dev sample.jar
设置活动配置文件的另一种方法是创建具有以下属性的
application.properties
文件:
spring.profiles.active=prod
使用 Spring-Boot 3+ 和 JDK 21
java -jar .\path\to\jar\app.jar --spring.profiles.active=dev