这个问题已经在这里有了答案: > Unable to query a db from gradle build script 2个
我正在尝试使用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 {
...
这行抛出一个错误:
找不到适用于jdbc:postgresql:// localhost:5432 / db的驱动程序
Connection conn = DriverManager.getConnection(db.url, db.user, db.password)
...
}
解决方法:
我从Evelino Bomitali的post中得到了答案.他解释清楚.还要检查他引用的帖子.
我在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" )
}
}
}
现在不必在任务之前声明Buildscript,因为依赖关系已在任务中解决.
标签:build-gradle,postgresql,gradle,jdbc,java
来源: https://codeday.me/bug/20191025/1928417.html