我需要加載Oracle驅動程序。繼this這裏是我的build.gradle文件:Gradle無法加載Oracle驅動程序
repositories {
flatDir name: 'localRepository', dirs: 'lib'
}
configurations {
driver
}
task loadOracle() << {
URLClassLoader loader = GroovyObject.class.classLoader
configurations.driver.each {File file ->
loader.addURL(file.toURL())
}
Class driverClass = loader.loadClass('oracle.jdbc.OracleDriver')
java.sql.Driver driverInstance = driverClass.newInstance()
java.sql.DriverManager.registerDriver(driverInstance)
// Sql sql = Sql.newInstance('jdbc-url','username','password')
}
它給出了這樣的例外:
Execution failed for task ':loadOracle'.
> java.lang.ClassNotFoundException: oracle.jdbc.OracleDriver
它抱怨該行的是
Class driverClass = loader.loadClass('oracle.jdbc.OracleDriver')
看起來它只是不加載lib/ojdbc-14.jar文件。
很多其他人在加載Oracle驅動程序時遇到問題。需要做些什麼?
謝謝。
由於Groovy的類加載器,我在編寫數據庫任務時遇到了同樣的問題。我發現'Thread.currentThread()。getContextClassLoader()。loadClass(driver)'工作。 Gradle插件不會出現這個問題,所以我爲[jOOQ](https://github.com/ben-manes/gradle-jooq-plugin)和[flyway]編寫了插件(https://github.com/ben -manes/gradle-flyway-plugin)來處理我的數據庫用例。 –
我添加了一個println文件給閉包,它不會從lib /目錄加載.jar文件。我從來沒有想過我會說這個,但是Gradle讓我想念Maven。 –