【发布时间】:2016-04-17 18:21:30
【问题描述】:
尝试将 jdbc postgresql 驱动程序添加到 gradle 脚本,我使用了 bildscript.dependencies.classpath DSL,但 groovy.sql.Sql 找不到它。所以我尝试打印类路径:
((URLClassLoader)this.class.classloader).getURLS.each{
println("#### ${it}")
}
所有打印的都是 gradle temp 编译文件所在的目录,那么其余的目录在哪里?罐子? 顺便说一句,我可以在我的脚本中使用 postgres sql 包中的导入和实例化类。 我的猜测是 sql 包在错误的类加载器中查找类,和我一样,所以有人知道如何获取类加载器吗?实例化驱动程序并将其添加到 DriverManager 会解决问题吗?
【问题讨论】:
-
查看 DriverManager 源代码似乎即使我通过自己实例化手动在 DriverManager 中注册驱动程序,它仍然无济于事,因为它验证了它找到的类加载器可以加载此类。 getClassLoader 方法是原生的,因此很难找到它的代码。我将使用该死的 GroovyObject.class.classLoader hack,将相同的类加载到本地类路径中并完成它,但我仍然不明白类路径是如何在 gradle 中组织的:-?
标签: postgresql gradle classpath