sqlite - 尝试访问本地数据库时,使用gradle获取java.lang.ClassNotFoundException:org.hsqldb.JDBCDriver

标签 sqlite gradle groovy

我已经附加了build.gradle文件的标题以及我正在使用的Task来查询数据库。我正在尝试访问数据库,从数据库中提取特定的版本号,然后将其保存在其他位置。

import java.text.SimpleDateFormat
import java.*   
import groovy.sql.Sql

apply plugin: 'com.android.application'

configurations 
{   
    sshAntTast    
    svnant
}

repositories 
{
    mavenCentral()
}

dependencies 
{    
    // Compiles commonlib (commonlib compiles Appcompat so erg will have access 
    // to appcompat through commonlib)

    compile project(':commonLib')

    // Project requires plugins and assistance to use the SCP function from Ant
    sshAntTask 'org.apache.ant:ant-jsch:1.7.1', 'jsch:jsch:0.1.29'
    // Acquires Sqlite and driver from Maven in order to compare databases
    testCompile group: 'org.xerial', name: 'sqlite-jdbc', version: '3.7.2'
}

task updateDatabase (dependsOn: 'prepareDatabase', type:Zip) {
doFirst {
    def oldDb = 'jdbc:sqlite:/$databaseLoc/unzipped'
    def dbDriver = 'org.hsqldb.JDBCDriver'
    def sql = Sql.newInstance(oldDb, dbDriver)
    sql.row("select * from database_version"){
        println "\n\ndB Version = ${it.version}"
        }
    sql.close()
    }
} 

我越来越:
  • 出了什么问题:
    任务':wiser:updateDatabase'的执行失败。

    java.lang.ClassNotFoundException: org.hsqldb.JDBCDriver


  • 当我尝试执行gradle updateDatabase时。我也尝试过使用不同的软件包来更改驱动程序,但是我一直遇到相同的错误。我也尝试在我的类路径中添加编译jar文件,但似乎没有任何效果。任何帮助都是极好的。

    最佳答案

    发生这种情况是因为在执行gradle时,其classpath中没有hsql驱动程序jar。

    您将需要在gradle脚本中使用类似这样的内容

    buildscript {
       dependencies {
          classpath files("somelibfolder/hsqldb.jar")
       }
    }
    

    关于sqlite - 尝试访问本地数据库时,使用gradle获取java.lang.ClassNotFoundException:org.hsqldb.JDBCDriver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44683623/

    相关文章:

    c# - Windows Phone 的复选框

    android - 使用带有 Gradle 的 git describe 对 Android 构建进行自动版本控制

    gradle - 使用 gradle 对文件运行 touch 命令

    windows - 如何以与 "cmd/c <command>".execute() 相同的方式从 groovy 运行 PowerShell 命令?

    jenkins - 在 groovy 中以 10000 递增循环

    grails - Grails Quartz插件不记得作业执行之间的状态数据吗?

    sql - 使用 SQLite 使用另一个表中的值更新列?

    c++ - SQlite 查询 - 如何检索多列数据?

    golang - 将枚举类型保存到 SQL 数据库 "panic: sql: converting Exec argument #1' s 类型 : non-Value type int returned from Value"

    gradle - 使用kongchen swagger-maven-plugin时,对gradle task swagger不可见的类