gpt4 book ai didi

sql-server - 无法从 gradle 构建脚本查询数据库

转载 作者:行者123 更新时间:2023-12-01 11:17:49 25 4
gpt4 key购买 nike

我正在尝试从 gradle 脚本任务中查询数据库。我开始使用 groovy 脚本来验证代码

import groovy.sql.Sql

this.class.classLoader.rootLoader.addURL(new URL('file:<..>/jtds-1.2.2.jar'))
def driver = 'net.sourceforge.jtds.jdbc.Driver'
def dburl = "jdbc:jtds:sqlserver://ITSVIL:1433/APPDB"
def first
Sql.withInstance(dburl, '<..>', '<..>', driver) {
sql ->
first = sql.firstRow( "SELECT * FROM PROJECT" )
}

我使用 groovy QueryTest.groovy 启动并验证它是否有效。然后我将脚本移动到 gradle 任务中,没有更改代码但加载由 gradle buildscript 语句处理

import groovy.sql.Sql

defaultTasks 'queryTest'

buildscript {
dependencies {
classpath files('<..>/jtds-1.2.2.jar')
}
}

task queryTest () {

// l'update va su REPOSITORYURL + '/' + alm.project.vcrProjectName + '/' + Reference

doLast {

def driver = 'net.sourceforge.jtds.jdbc.Driver'
def dburl = "jdbc:jtds:sqlserver://ITSVIL:1433/APPDB"
def first
Sql.withInstance(dburl, '<..>', '<..>', driver) {
sql ->
first = sql.firstRow( "SELECT * FROM PROJECT" )
}
}
}

用gradle -b QueryTest.gradle启动,这次我得到了

Execution failed for task ':queryTest'.
> java.sql.SQLException: No suitable driver found for jdbc:jtds:sqlserver://ITSVIL:1433/IKALM_APP

尝试了我在论坛中找到的任何可能的建议,但均未成功。会寻求帮助。

最佳答案

由于 groovy 的动态特性,gradle 中的类加载非常复杂。我要感谢@cptwonton 给我指出了一个很好的解释here

我不得不稍微修改 gradle 脚本,这是工作版本。 jdts-1.2.2.jar在flatDir引用的lib目录下。

import groovy.sql.Sql

defaultTasks 'queryTest'

task queryTest () {
repositories {
flatDir {
dirs 'lib'
}
}
configurations {
jdbc
}
dependencies {
jdbc 'net.sourceforge.jtds:jtds:1.2.2'
}

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

def driver = 'net.sourceforge.jtds.jdbc.Driver'
def dburl = "jdbc:jtds:sqlserver://ITSVIL:1433/APPDB"
def first
Sql.withInstance(dburl, '<..>', '<..>', driver) {
sql ->
first = sql.firstRow( "SELECT * FROM PROJECT" )
}
}
}

关于sql-server - 无法从 gradle 构建脚本查询数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48405030/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com