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

2023-12-01

我正在尝试从 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

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


由于常规的动态特性,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" )
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从 gradle 构建脚本查询数据库 的相关文章

  • Android Gradle 同步失败:无法解析配置“:classpath”的所有工件

    错误如下 Caused by org gradle api internal artifacts ivyservice DefaultLenientConfiguration ArtifactResolveException Could n
  • 使用存储过程中的 Select 查询将单个变量分配给多行

    我的查询是使用 Select 将单个变量分配给多行 存储过程中的查询 例如 我从 Employee 表中获取 10 个 比如 1 到 10 个员工 ID 声明 id int select id EmpId from Employee sel
  • Gradle,取决于订购

    对 Gradle 中的排序感到困惑 我是一个新手 之前使用 Ant 进行构建 尝试使用 Gradle 这可能会解释其中的一些内容 简要背景 以防有人问 你为什么要这样做 我们在 war 文件中发布 Java WebStart 应用程序 Ja
  • Groovy 元编程 - 将静态方法添加到 Object.metaClass

    我遇到了无法解决的 Groovy 元编程问题 将静态方法 foo 添加到类 FooBar 时 FooBar foo 按预期工作 FooBar metaClass static foo println hello FooBar foo 但是
  • ALTER TABLE 语句与 FOREIGN KEY 约束冲突

    为什么要添加外键tblDomare表导致此错误 ALTER TABLE 语句与 FOREIGN KEY 约束 FK tblDomare PersN 5F7E2DAC 冲突 冲突发生在数据库 almu0004 表 dbo tblBana 列
  • 如何使用一个命令删除 SQL 数据库中的所有索引?

    那么 如何通过一条命令删除 SQL 数据库中的所有索引呢 我有这个命令可以获取所有 20 个左右的 drop 语句 但是如何从这个 结果集 运行所有这些 drop 语句呢 select from vw drop idnex 给我相同列表的另
  • 告诉我 SQL Server 全文搜索器疯了,不是我疯了

    我有一些客户具有用户正在搜索的特定地址 123 通用方式 数据库中有 5 行匹配 ResidentialAddress1 123 GENERIC WAY 123 GENERIC WAY 123 GENERIC WAY 123 GENERIC
  • 反思 Groovy 脚本中声明的函数

    有没有一种方法可以获取 Groovy 脚本中声明的函数的反射数据 该脚本已通过GroovyShell目的 具体来说 我想枚举脚本中的函数并访问附加到它们的注释 Put this到 Groovy 脚本的最后一行 它将作为脚本的返回值 a la
  • Jenkins 共享库 - 从 /vars 中的 /src 文件夹导入类

    我正在尝试为我的 CI 流程编写一个 Jenkins 共享库 我想引用一个类 src定义在全局函数内的文件夹 vars文件夹 因为它允许我将大部分逻辑放在类中而不是全局函数中 我遵循 Jenkins 官方文档中记录的存储库结构 Jenkin
  • 由于 play-services-base-17.1.0.aar 转换错误,无法构建项目

    所以基本上我已经快一年没有打开我的 Android Studio 项目了 这次是打开和构建它的时候了 更新 Android Studio 和项目的所有插件后 我终于遇到了这个错误 Execution failed for task app
  • 使用 Android Gradle 插件生成 JavaDocs

    如何使用新的 Gradle 构建系统为 Android 项目生成 JavaDocs 这是我想出的 但它不起作用 task generateJavadoc type Javadoc source android sourceSets main
  • 如何在 SQL Server 2012 中选择除一列之外的所有列? [复制]

    这个问题在这里已经有答案了 有没有一种方法可以选择所有列 但只选择我不想选择的特定列 我的意思是有时我会遇到这样的问题 表有数百个字段 而我只需要删除一个字段 我需要重写所有列吗 有什么窍门吗 喜欢select
  • TransactionScope 是否需要开启 DTC 服务?

    根据我的阅读 为了在 NET 中使用 TransactionScope 您需要运行 Windows 中的分布式事务协调器服务 我有那个服务关掉 并且我的应用程序似乎运行相同并且回滚事务没有问题 我错过了什么吗 它如何能够发挥作用呢 我正在运
  • 具有共享依赖项的多模块项目的 Gradle 配置

    使用 gradle 制作第一个项目 所以我研究了 spring gradle hibernate 项目如何组织 gradle 文件 并开始制作自己的项目 但是 找不到错误 为什么我的配置不起作用 子项目无法解决依赖关系 所以项目树 Root
  • 如何从 Laravel 执行存储过程

    我需要在表单提交数据后执行存储过程 我让存储过程按照我想要的方式工作 并且我的表单正常工作 我只是不知道从 laravel 5 执行 sp 的语句 它应该是这样的 执行 my stored procedure 但我似乎在网上找不到类似的东西
  • 如何使用 SQL 查询创建逗号分隔的列表?

    我有 3 个表 名为 应用程序 ID 名称 资源 id 名称 应用程序资源 id app id resource id 我想在 GUI 上显示所有资源名称的表格 在每一行的一个单元格中 我想列出该资源的所有应用程序 以逗号分隔 所以问题是
  • 根据数据框中的内容从SQL Server删除行

    我在 SQL Server 中有一个名为的库存表dbo inventory其中包含Year Month Material and Stock quantity 我每天都会收到 csv 文件形式的新库存计数 需要将其加载到dbo invent
  • SQL Server - 选择满足条件的第一行

    我有 2 个包含 ID 的表 其中一个表中会有重复的 ID 我只想为表 B 中的每个匹配 ID 返回一行 例如 Table A objectIdA objectIdB 1 A 1 B 1 D 5 F Table B objectIdA 1
  • 在 SQL Server Management Studio 中格式化 SQL

    在 Visual Studio 和其他 IDE 中 您可以使用键盘快捷键 通过菜单或在键入时自动设置代码格式 我想知道是否有办法在 SQL Server Management Studio 中启用此标准功能 我正在处理一些大型存储过程 这些
  • SQL Server 读提交隔离级别到底如何工作?

    恕我直言 我发现两个关于如何进行不一致的描述ReadCommitted有效 均在 MSDN 文档中 https msdn microsoft com en us library ms173763 aspx https msdn micros

随机推荐

  • 如何使用 UITypeEditor 创建简单的 Visual Studio Automation Extender

    在 Visual Studio 中 当您在解决方案资源管理器中选择项目或项目项时 有时您可能希望将自定义属性添加到属性窗口 按 F4 时弹出的窗口 此外 为了填写这些属性的值 我需要添加一个按钮来弹出表单 以便我可以在设计时从用户那里收集信
  • Python Pydub 权限被拒绝?

    当我运行这段代码时 from pydub import AudioSegment sound AudioSegment from mp3 i mp3 sound export F bh format wav A ffmpeg window
  • 使用 chromedriver 从 Selenium 打印 PDF

    我正在尝试使用 Selenium chromedriver 和 python 实现将 html css 内容打印为 PDF 我可以使用以下代码进行打印 但无法更改打印设置 我想以 Letter 尺寸打印 并且没有页眉 页脚 官方信息铬驱动程
  • HTML“no-js”类的目的是什么?

    我注意到在很多模板引擎中HTML5 样板 在各种框架和普通 php 站点中都有no js类添加到 tag 为什么要这样做 是否有某种默认浏览器行为对此类做出反应 为什么总是包含它 如果没有 no no js 情况并且可以直接处理 html
  • 导航抽屉项目图标不显示原始颜色

    我试图在导航抽屉的菜单中的项目旁边显示一个图标 但由于某种原因 该图标始终显示为灰色 而不是原始颜色 棕色 有什么方法可以防止这种情况发生 以显示图标的原始颜色 MainActivity java public class MainActi
  • 如何更改默认 EditText 的样式

    我正在创建三个EditText在我的 xml 文件中使用如下代码
  • Python CSV:读取以逗号终止的行会导致空结果

    如果这是一个愚蠢的问题 请随意骚扰我 因为我自己找不到正确的答案 我正在尝试读取一个 CSV 格式的文件 其中每行都包含数据 并且每行都以逗号终止 像这样 1 1 1 1 当我尝试使用 Python 的 CSV 函数时 我使用以下代码 wi
  • 错误:“struct List”需要模板参数

    我正在尝试为 List 类创建自己的模板作为学习练习 不过 我在模板语法方面遇到了一些问题 现在收到以下错误消息 main cpp Line 8 instantiated from here error template argument
  • 对于 >2 个类别的结果,插入符训练方法不起作用(所有准确性结果都有问题)

    嗨 我知道之前有人问过类似的问题 但还没有明确的答案 或者我尝试了他们的解决方案但没有成功 使用 GBM 时出现插入符错误 但并非没有插入符 插入符训练方法抱怨有问题 所有 RMSE 指标值均缺失 我尝试使用插入符训练方法来预测分类结果 下
  • R.java自动生成文件

    在 android 2 1 和 2 2 中 R java 文件是自动生成的 但在2 0平台中我们必须构建R java文件 任何人都知道如何从程序生成 R java 文件 使用 clean 并在 eclipse 中构建 每次构建 androi
  • 即使设置了内容大小,UIScrollView 也不会滚动

    我的 UIScrollView 是一个约 4500px 的水平视图 用户需要水平滚动才能查看内容 我已将其设置如下 void viewDidLoad super viewDidLoad sview frame CGRectMake 0 0
  • 定点的 2 次幂近似

    目前 我正在使用一个小型查找表和线性插值 它非常快且足够准确 最大误差小于 0 001 然而我想知道是否有一个更快的近似值 由于指数的整数部分可以通过位移位来提取和计算 因此近似值只需在 1 1 范围内工作 我试图找到切比雪夫多项式 但对于
  • Msys2:两个 python 安装中的 readline

    我将编辑放在最上面 因此读者不需要找到当前状态 这是与中提到的两个 python 安装相关的特定问题Msys2 维护两个 python 安装 pacman Sl grep python grep installed mingw64 ming
  • Android Eclipse - 移动项目导致所有 R 引用错误

    我通过右键单击项目 gt 重构 gt 移动将我的项目移动到 Eclipse 上 这导致 起初 项目名称旁边显示一个感叹号 所以我重新启动了Eclipse 这删除了感叹号 但现在我的整个活动文件的 R 引用都有错误 我试过 删除 R java
  • JPA/hibernate大集合

    在具有两种类型实体 父实体和子实体 的场景中 家长 OneToMany 集合子项 默认情况下对子集合进行延迟加载 这种模式对于少数儿童来说效果很好 但如果儿童数量变得非常多 这似乎是不可持续的 因此 对于我认为子级数量会非常大的情况 我会使
  • C# Regex.Replace 匹配相同数量的字符

    我想知道如何将未知数量的等号 不少于 2 个 的正则表达式匹配替换为相同数量的下划线 到目前为止我得到了这个 text Regex Replace text 2 我应该使用什么作为第三个参数 编辑 最好是与所有语言兼容的正则表达式解决方案
  • 在 C# 中从 FLV 流中提取音频

    我想从 C 中的 FLV 流中提取音频流 我在谷歌上搜索 发现FLV提取 但它仅支持从 FLV 文件中提取 而不支持从流中提取 我怎样才能做到这一点 我没有找到任何东西 所以我必须自己写 它速度非常快 而且效果很好 这是代码 protect
  • 如何根据媒体大小显示不同的视频?

    我打算在网页上运行背景视频 我有不同的移动视频文件和桌面视频文件 我
  • JEdi​​torPane 超链接 swing html

    我很难让超链接在 JEditorPane 中工作 有人可以告诉我我在这里做错了什么吗 我希望能够单击链接和浏览器来打开该页面 提前致谢 D bottomText setText a href Yahoo a bottomText setEd
  • 无法从 gradle 构建脚本查询数据库

    我正在尝试从 gradle 脚本任务中查询数据库 我从一个 groovy 脚本开始来验证代码 import groovy sql Sql this class classLoader rootLoader addURL new URL fi