java - 使用预定义的配置文件运行 Spring Boot JAR
问题描述
我正在尝试使用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 配置文件是完全不同的东西,不应该影响弹簧配置文件。
我不知道在哪里寻找问题,因为当我通过 Intellij IDEA 中的“运行”按钮启动应用程序时,它运行良好,并且可以识别每个设置为活动的配置文件。
这里的实际问题是如何设置默认配置文件以在构建工件时运行,因此无需在运行 jar 的终端命令中放置额外的标志。
我知道有很多像我这样的问题,但他们接受的大多数答案在我的情况下都不起作用,其余的都没有答案。如果您知道这里可能存在什么问题,请告诉我。预先感谢您的任何帮助!
解决方案
您可以通过命令行参数激活配置文件。在您的尝试中,您在 jar 名称之后定义活动配置文件。您需要在您正在运行的 jar 名称之前提供程序参数。
java -jar -Dspring.profiles.active=dev sample.jar
设置活动配置文件的另一种方法是创建application.properties
具有以下属性的文件:
spring.profiles.active=prod
推荐阅读
- mysql - 如何在cnf文件中更改mysql中的端口
- ffmpeg - 使用 ffmpeg 解码的文件与使用 flac.exe 解码的文件具有不同的 CRC
- javascript - 将类组件转换为功能组件时出错
- regex - 正则表达式:可选的重复字符
- mysql - SQL Server Migration Assistant for MySQL(中文显示错误)
- javascript - 基于值jquery删除对象
- ios - 3D-Touch 主屏幕快速操作在冷启动时不起作用
- c# - 尽管方法签名与委托完全匹配,但将函数分配给事件时出现错误“CS0123”
- zabbix - 需要 ViewState 的具有身份验证的 Web 场景
- wso2 - WSO2AM 模式 2 部署