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

Quarkus执行Gradle native构建时PostgreSQL数据源报错如何解决

Quarkus原生构建PostgreSQL数据源报错解决方法

报错根因

两个报错是连续踩坑导致的:

  1. 第一次构建失败核心原因是缺Quarkus官方适配的PostgreSQL JDBC扩展。Quarkus原生构建走GraalVM静态编译,必须用官方做过元数据适配的扩展,仅靠通用配置识别不到驱动类。
  2. 手动添加driver: org.postgresql.Driver的操作踩了旧版本配置的坑:这个配置项在Quarkus 1.3版本标记废弃,1.9版本就彻底移除了,新版本根本不识别这种写法,所以直接抛配置错误。

修复步骤

  • 第一步:清理错误配置
    先删掉你手动加在datasource层级下的driver: org.postgresql.Driver配置项。另外注意你原来的配置缺了quarkus根节点,Quarkus所有内置配置都要放在这个节点下才会被加载,正确的数据源配置格式参考:
    quarkus:
      datasource:
        db-kind: postgresql
        username: 替换为你的数据库用户名
        password: 替换为你的数据库密码
        jdbc:
          url: jdbc:postgresql://postgres_host_name:port/data_basename
          max-size: 10
    
  • 第二步:引入官方PostgreSQL JDBC扩展
    Gradle项目直接在项目根目录执行以下命令,就能自动把适配好的扩展加进项目依赖:
    ./gradlew addExtension --extensions="io.quarkus:quarkus-jdbc-postgresql"
    
    不想敲命令也可以手动往build.gradle的dependencies块中添加依赖:
    implementation 'io.quarkus:quarkus-jdbc-postgresql'
    
  • 第三步:重新执行构建
    配置和依赖都调整完成后,重新运行原生构建命令即可:
    ./gradlew build -Dquarkus.package.type=native
    

补充说明

不要直接往项目里引入普通的开源PostgreSQL JDBC驱动包,这类通用驱动没有做GraalVM原生镜像的元数据适配,就算配置写对了,构建阶段或者运行时也会出现类找不到、反射调用失败的问题。安装官方的quarkus-jdbc-postgresql扩展后,框架会自动完成驱动类绑定、编译元数据注册,完全不需要手动指定driver类名。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:31:28