GitHub Actions中使用Secrets配置Spring应用数据库信息时密码认证失败问题求助
GitHub Actions中使用Secrets配置Spring应用数据库信息时密码认证失败问题求助
大家好,我最近在配置GitHub Actions构建Spring应用时遇到了个棘手的问题,折腾好一阵都没搞定,想请各位大佬帮忙分析下。
先给大家说下我的配置情况:
首先是我的GitHub Actions工作流文件:
on: push jobs: build: runs-on: ubuntu-latest env: DB_NAME: ${{ secrets.DB_NAME }} DB_USERNAME: ${{ secrets.DB_USERNAME }} DB_PASSWORD: ${{ secrets.DB_PASSWORD }} steps: - uses: actions/checkout@v4 - name: Set up JDK 24 uses: actions/setup-java@v4 with: java-version: '24' distribution: 'temurin' cache: maven - name: Build with Maven run: mvn clean install
然后是Spring项目里的application.yml配置:
spring: application: name: application datasource: url: jdbc:postgresql://localhost:5432/${DB_NAME} username: ${DB_USERNAME} password: ${DB_PASSWORD} jpa: database-platform: org.hibernate.dialect.PostgreSQLDialect
问题是这样的:当触发GitHub Actions执行mvn clean install时,构建直接失败了,核心错误信息是:
Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "${DB_USERNAME}"
我一开始以为是环境变量没传到Spring里,先在本地做了测试——用mvn clean install -DDB_NAME=dbname -DDB_USERNAME=dbuser -DDB_PASSWORD=pass这种方式传参,本地跑完全正常,没有任何问题。
于是我把GitHub Actions里的Maven命令改成了直接传Secrets的形式:
- name: Build with Maven run: mvn clean install -DDB_NAME=${{ secrets.DB_NAME }} -DDB_USERNAME=${{ secrets.DB_USERNAME }} -DDB_PASSWORD=${{ secrets.DB_PASSWORD }}
结果还是报一模一样的错误!我反复确认过GitHub上的Secrets是正确配置的,Spring版本用的是6.2.8。
现在我实在搞不懂,为什么不管是用工作流的env定义环境变量,还是直接在Maven命令里传-D参数,Spring都没正确解析这些变量,反而把${DB_USERNAME}当成了实际的用户名去连接数据库?有没有大佬能帮我揪出问题所在,或者有没有什么我漏掉的配置细节?
内容来源于stack exchange
相关产品推荐
相关产品推荐

