Gradle buildscript 找不到 Postgresql JDBC 驱动程序

Mik*_*ikk 5 java postgresql jdbc gradle build.gradle

我正在尝试使用 gradle 任务设置数据库。但是我没有运气找到 postgresql JDBC 驱动程序。在 java 项目中,它找到驱动程序并运行良好(虽然它没有通过 buildscript 获得依赖项),但不是 gradle.build 文件。

我尝试使用 groovy.sql,但遇到了同样的错误。

buildscript {
 repositories {
   mavenCentral()
 }

 dependencies {
  classpath 'org.postgresql:postgresql:42.2.0'
 }
}

import java.sql.*
task testTask {
 ...
Run Code Online (Sandbox Code Playgroud)

这一行抛出一个错误: 没有为 jdbc 找到合适的驱动程序:postgresql://localhost:5432/db

 Connection conn = DriverManager.getConnection(db.url, db.user, db.password) 
 ...
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ikk 4

我从 Evelino Bomitali 的帖子中得到了答案。他解释得很简洁。也请检查他引用的帖子。

我在 Postgresql 中使用的代码:

import groovy.sql.Sql
task queryTest () {
    configurations {
        jdbc
    }
    dependencies {
        jdbc 'org.postgresql:postgresql:42.2.0'
    }

    doLast {
        def sqlClassLoader = Sql.classLoader
        configurations.jdbc.each { sqlClassLoader.addURL it.toURI().toURL() }

        def driver = 'org.postgresql.Driver'
        def dburl = "jdbc:postgresql://localhost:5432/testdb"
        def first
        Sql.withInstance(dburl, 'tester', 'password', driver) {
            sql ->
                first = sql.firstRow( "SELECT * FROM users" )
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

现在不必在任务之前声明 Buildscript,因为依赖关系已在任务中解决。