【问题标题】:io.quarkus.builder.BuildException: Build failure: Build failed due to errorsio.quarkus.builder.BuildException:构建失败:构建因错误而失败
【发布时间】:2022-07-07 21:37:19
【问题描述】:

运行 ./gradlew build -Dquarkus.package.type=native 时出现此错误

在 application.yml 文件中 在

datasource:
 db-kind: postgresql
 driver: org.postgresql.Driver
 username: username
 password: password

 jdbc:
      url: jdbc:postgresql://postgres_host_name:port/data_basename
      max-size: 10
[error]: Build step io.quarkus.agroal.deployment.AgroalProcessor#build threw an exception: io.quarkus.runtime.configuration.ConfigurationException: Unable to find a JDBC driver corresponding to the database kind 'postgresql' for the default datasource. Either provide a suitable JDBC driver extension, define the driver manually, or disable the JDBC datasource by adding 'quarkus.datasource.jdbc=false' to your configuration if you don't need it.
        at io.quarkus.agroal.deployment.AgroalProcessor.resolveDriver(AgroalProcessor.java:330)
        at io.quarkus.agroal.deployment.AgroalProcessor.getAggregatedConfigBuildItems(AgroalProcessor.java:276)
        at io.quarkus.agroal.deployment.AgroalProcessor.build(AgroalProcessor.java:82)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:944)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
        at java.base/java.lang.Thread.run(Thread.java:833)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)

收到此错误后,我插入了driver: org.postgresql.Driver

> io.quarkus.builder.BuildException: Build failure: Build failed due to errors
        [error]: Build step io.quarkus.agroal.deployment.AgroalProcessor#build threw an exception: io.quarkus.runtime.configuration.ConfigurationException: quarkus.datasource.url and quarkus.datasource.driver have been deprecated in Quarkus 1.3 and removed in 1.9. Please use the new datasource configuration as explained in https://quarkus.io/guides/datasource.
        at io.quarkus.agroal.deployment.AgroalProcessor.build(AgroalProcessor.java:77)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:568)
        at io.quarkus.deployment.ExtensionLoader$3.execute(ExtensionLoader.java:944)
        at io.quarkus.builder.BuildContext.run(BuildContext.java:277)
        at org.jboss.threads.ContextHandler$1.runWith(ContextHandler.java:18)
        at org.jboss.threads.EnhancedQueueExecutor$Task.run(EnhancedQueueExecutor.java:2449)
        at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1478)
        at java.base/java.lang.Thread.run(Thread.java:833)
        at org.jboss.threads.JBossThread.run(JBossThread.java:501)

对此有任何建议

【问题讨论】:

    标签: java postgresql quarkus


    【解决方案1】:

    您确定没有来自其他来源的配置属性,例如环境变量、application.properties 或 .env 文件?

    因为 Quarkus 抱怨 quarkus.datasource.url 存在,而您的 YAML 文件中没有它。所以它一定来自其他地方。

    如果你有 quarkus-jdbc-postgresql 扩展,这样的东西就足够了:

    quarkus:
      datasource:
        db-kind: postgresql
        username: username
        password: password
        jdbc:
          url: jdbc:postgresql://postgres_host_name:port/data_basename
          max-size: 10
    

    【讨论】: