我创建了一个小jar分发版,为我设置数据库连接。 问题是,当我将它作为gradle依赖项添加时,我得到:
java.lang.ClassNotFoundException: com.ibm.db2.jcc.DB2Driver
Gradle dependecie tree:
--- prokasdb-connector:prokasDBConnection:2.0
+--- commons-collections:commons-collections:3.2.1
+--- commons-dbcp:commons-dbcp:1.4
| \--- commons-pool:commons-pool:1.5.4
+--- commons-pool:commons-pool:1.5.4
+--- log4j:log4j:1.2.17
+--- prokasdb-connector-dependencies:db2jcc:0.1
+--- prokasdb-connector-dependencies:db2jcc4:0.1
+--- prokasdb-connector-dependencies:db2jcc_license_cu:0.1
\--- prokasdb-connector-dependencies:db2small:0.1
另一个评论是,当我通过eclipse菜单进入构建路径时,我注意到缺少最后一个依赖项,而其余的则自动添加。 db2连接器包含在最后4个jar中,这就是java无法找到它的原因
答案 0 :(得分:0)
将此添加到您的build.gradle
并从命令行运行gradle findClass
task findClass {
doLast {
def foundJars = [] as Set
configurations.runtime.files.each { jar ->
zipTree(jar).visit { FileVisitDetails fvd ->
def path = fvd.relativePath.pathString.replace('\\', '/')
if (path == 'com/ibm/db2/jcc/DB2Driver.class') {
foundJars << jar
}
}
}
println "Found driver in ${foundJars}"
}
}