gradle mysql jdbc_Gradle加载mysql-connector jar但没有dbunit jar作为外部依赖,为什么?...

博主在尝试使用Gradle、Groovy和DBUnit与MySQL交互时遇到问题。尽管Gradle成功下载了mysql-connector和相关依赖,但在运行时,脚本无法找到DBUnit的相关类。错误显示为无法解析DBUnit的类,但listJars任务确认了dbunit-2.2.jar已被加载。博主寻求帮助以理解这个问题。
摘要由CSDN通过智能技术生成

请给我一些关于我在这里做错了什么。首先,我是Gradle和Groovy的新手,为了学习的目的,我正在和他们以及DBUnit一起玩。

我尝试了下面列出的代码,我的目标是生成一个从mysql数据库获取数据的数据集。

import groovy.sql.Sql

import org.dbunit.database.DatabaseConnection;

import org.dbunit.database.IDatabaseConnection;

import org.dbunit.dataset.IDataSet;

import org.dbunit.dataset.xml.FlatXmlDataSet;

repositories {

mavenCentral()

}

configurations {

dbunit

}

dependencies {

dbunit 'dbunit:dbunit:2.2',

'junit:junit:4.11',

'mysql:mysql-connector-java:5.1.25'

}

URLClassLoader loader = GroovyObject.class.classLoader

configurations.dbunit.each { File file -> loader.addURL(file.toURL()) }

task listJars << {

configurations.dbunit.each { File file -> println file.name }

}

task listTables << {

getConnection("mydb").eachRow('show tables') { row -> println row[0] }

}

task generateDataSet << {

def IDatabaseConnection conn = new DatabaseConnection(getConnection("mydb").connection)

def IDataSet fullDataSet = conn.createDataSet()

FlatXmlDataSet.write(fullDataSet, new FileOutputStream("full.xml"))

}

static Sql getConnection(db) {

def props = [user: 'dbuser', password: 'userpass', allowMultiQueries: 'true'] as Properties

def url = (db) ? 'jdbc:mysql://host:3306/'.plus(db) : 'jdbc:mysql://host:3306/'

def driver = 'com.mysql.jdbc.Driver'

Sql.newInstance(url, props, driver)

}对我来说奇怪的是,所有的MySQL方法都工作正常,我可以得到表的列表,例如连接已经完成,所以mysql-connector-java.jar被加载(我想),但是当我添加DBUnit的东西(导入库和generateDataSet方法)似乎dbunit jar不可用于脚本,我得到了以下错误:

FAILURE: Build failed with an exception.

* Where:

Build file '/home/me/tmp/dbunit/build.gradle' line: 5

* What went wrong:

Could not compile build file '/home/me/tmp/dbunit/build.gradle'.

> startup failed:

build file '/home/me/tmp/dbunit/build.gradle': 5: unable to resolve class org.dbunit.dataset.xml.FlatXmlDataSet

@ line 5, column 1.

import org.dbunit.dataset.xml.FlatXmlDataSet;

^

build file '/home/me/tmp/dbunit/build.gradle': 2: unable to resolve class org.dbunit.database.DatabaseConnection

@ line 2, column 1.

import org.dbunit.database.DatabaseConnection;

^

build file '/home/me/tmp/dbunit/build.gradle': 3: unable to resolve class org.dbunit.database.IDatabaseConnection

@ line 3, column 1.

import org.dbunit.database.IDatabaseConnection;

^

build file '/home/me/tmp/dbunit/build.gradle': 4: unable to resolve class org.dbunit.dataset.IDataSet

@ line 4, column 1.

import org.dbunit.dataset.IDataSet;

^

4 errors但是如果我调用listJars任务,我得到了这个:

:listJars

junit-4.11.jar

mysql-connector-java-5.1.25.jar

hamcrest-core-1.3.jar

xercesImpl-2.6.2.jar

xmlParserAPIs-2.6.2.jar

junit-addons-1.4.jar

poi-2.5.1-final-20040804.jar

commons-collections-3.1.jar

commons-lang-2.1.jar

commons-logging-1.0.4.jar

dbunit-2.2.jar

BUILD SUCCESSFUL在我的理解中,这意味着所有这些罐子都已装入并可供脚本使用,对吗?或者我在类装载器的东西上做了什么错误?

非常感谢。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值