Spring Boot的application.yml无法读取Git Bash设置的环境变量
解决方法
1. 修正.env文件格式
你的.env中DATABASE_URL带双引号,会导致变量值包含引号本身,Spring Boot读取后URL格式错误,同时Git Bash的source命令处理带引号变量时,传递给子进程存在问题。修改.env去掉引号:
PORT=8000 DATABASE_URL=jdbc:mysql://localhost:3306/test?useSSL=false DATABASE_USERNAME=kp-usr-1 DATABASE_PASSWORD=Kpi987223oibnW
2. 强制传递环境变量给Gradle
在Git Bash中执行以下命令,先将.env变量批量export到当前会话,再执行Gradle命令,确保Java进程能获取到变量:
export $(cat .env | xargs) && ./gradlew build
3. 利用Spring Boot原生.env支持(推荐)
Spring Boot 2.4.0及以上版本支持自动加载项目根目录的.env文件,无需手动执行source:
- 保持
.env文件在项目根目录(按修正后的格式) - 启动或构建项目时,Spring Boot会自动加载文件中的环境变量,直接被
application.yml引用
4. 检查文件读取权限
确保Git Bash能正常读取.env文件,可执行cat .env确认内容能正常输出,若存在权限问题,右键文件→属性→安全选项卡,赋予当前用户读取权限。
内容的提问来源于stack exchange,提问作者Jassi
相关产品推荐
相关产品推荐

