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

时间:2017-06-21 18:28:18

标签: sqlite gradle groovy

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

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文件,但似乎没有任何工作。任何帮助都会很棒。

1 个答案:

答案 0 :(得分:0)

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

你需要在你的gradle脚本中使用这样的东西

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