試圖將jdbc postgresql驅動程序添加到gradle腳本中,我使用bildscript.dependencies.classpath DSL但groovy.sql.Sql找不到它。所以我試着打印類路徑: ((URLClassLoader)this.class.classloader).getURLS.each{ println("#### ${it}") }
gradle腳本classpath只包含腳本類
所有打印的是gradle temp編譯文件所在的目錄,那麼其餘的目錄在哪裏?罐子? 順便說一句我可以在我的腳本中使用導入和實例化postgres sql包中的類。 我的猜測是sql包在錯誤的類加載器中尋找類,與我一樣,所以任何人都知道如何獲得類加載器?將實例化驅動程序並將其添加到DriverManager解決該問題?
看着DriverManager的源代碼,它似乎即使我手動註冊在DriverManager中的驅動程序通過實例化它自己它仍然不會幫助,因爲它驗證它找到的類加載器可以加載此類。 getClassLoader方法是本地的,因此很難找到它的代碼。我將使用該死的GroovyObject.class.classLoader hack,它將相同的類加載到本地類路徑中並完成它,但我仍然不明白classpath是如何在gradle中創建的: - ? – codeScriber