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

Spring Boot项目GitHub Actions中Maven构建PostgreSQL密码验证失败求助

Spring Boot项目GitHub Actions构建PostgreSQL密码验证失败解决方案

问题根源

本地运行正常是因为使用docker-compose-test.yml启动的PostgreSQL容器,用户名为root、密码pgpwd4habr,与application-test.properties的配置完全匹配。而GitHub Actions构建失败的核心原因是:maven.yml中启动PostgreSQL时配置的用户是dev_sb_db_user、密码dev_sb_db_password,但测试用的application-test.properties仍使用root和pgpwd4habr,两者不匹配导致Flyway连接数据库时验证失败。


解决方案

方案1:直接统一CI环境与测试配置

修改maven.yml中的PostgreSQL启动参数,使其与application-test.properties的数据库用户、密码一致:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v3
    - name: Connect to PostgreSQL
      uses: harmon758/postgresql-action@v1
      with:
        postgresql version: '11'
        postgresql db: 'dev_sb_db'
        postgresql user: 'root'  # 改为测试配置的用户名
        postgresql password: 'pgpwd4habr'  # 改为测试配置的密码
    - name: Set up JDK 11
      uses: actions/setup-java@v3
      with:
        java-version: '11'
        distribution: 'temurin'
        cache: maven
    - name: Build with Maven
      run: mvn -B package --file pom.xml

方案2:用环境变量统一管理(更推荐)

避免硬编码配置,让本地和CI环境保持一致:

  1. 修改application-test.properties,使用环境变量+默认值的方式:
# PostgreSQL configurations:
spring.datasource.url=jdbc:postgresql://localhost:5432/dev_sb_db
spring.datasource.username=${BOT_DB_USERNAME:root}
spring.datasource.password=${BOT_DB_PASSWORD:pgpwd4habr}
spring.datasource.driver-class-name=org.postgresql.Driver
  1. 在maven.yml中配置环境变量,同步PostgreSQL启动参数:
jobs:
  build:
    runs-on: ubuntu-latest
    env:
      BOT_DB_USERNAME: root
      BOT_DB_PASSWORD: pgpwd4habr
    steps:
    - uses: actions/checkout@v3
    - name: Connect to PostgreSQL
      uses: harmon758/postgresql-action@v1
      with:
        postgresql version: '11'
        postgresql db: 'dev_sb_db'
        postgresql user: '${{ env.BOT_DB_USERNAME }}'
        postgresql password: '${{ env.BOT_DB_PASSWORD }}'
    - name: Set up JDK 11
      uses: actions/setup-java@v3
      with:
        java-version: '11'
        distribution: 'temurin'
        cache: maven
    - name: Build with Maven
      run: mvn -B package --file pom.xml

内容的提问来源于stack exchange,提问作者xataaa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 22:00:39