【发布时间】:2012-03-30 06:15:15
【问题描述】:
我对 build.gradle 文件本身有一个 jar 依赖项。我正在使用这个定义:
buildscript {
repositories {
flatDir {
dirs 'lib'
}
}
dependencies {
classpath name: 'ojdbc16'
}
}
这个任务:
task mytask() << {
String updateQuery = "somequery"
println "Setting up test user with query:\n${updateQuery}"
Sql sql = Sql.newInstance("jdbc:oracle:thin:@//host:port/sid", user, password, 'oracle.jdbc.driver.OracleDriver')
boolean successful = sql.execute(updateQuery)
}
但我得到了这个例外:
Caused by: org.codehaus.groovy.runtime.InvokerInvocationException: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:452)
at org.gradle.api.internal.AbstractTask$ClosureTaskAction.execute(AbstractTask.java:436)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:60)
... 54 more
Caused by: java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver
at build_5kgfd83hhriam4rhlh34a1l160$_run_closure3.doCall(/Users/localadmin/projects/test-case-runner/build.gradle:41)
... 57 more
这里会发生什么?我没有收到关于类路径定义的任何错误,所以我假设我的依赖解析工作正常。什么可能失败?
【问题讨论】:
-
猜想,但我注意到你的依赖被命名为'ojdbc16',你重命名了jar吗?原来的名字是'ojdbc6'
-
您尝试过
classpath ':ojdbc16:'吗?我相信您的 JAR 文件的文件名中没有定义的版本号,由破折号分隔,对吗? -
如果您阅读下面我更新的答案,语法很好:P.
标签: groovy dependencies gradle