You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.08 03:08:13