2017-07-13 82 views
0

試圖通過scriptler插件使用jenkins中的groovy腳本連接到mysql數據庫。 使用相同的jdbc mysql連接器。jenkins scriptler的groovy腳本無法正常工作。 classpath問題

mysql連接器jar文件存在於jenkins運行的機器的classpath中。 只爲jenkins運行1臺機器。下面

是代碼片段:

import java.sql.* 
import groovy.sql.Sql 
DriverManager.registerDriver(new com.mysql.jdbc.Driver()) 

try{ 
    def dbURL = 'jdbc:mysql://x.x.x.x:3306/Employee_DB' 
    def dbUserName = 'root' 
    def dbPassword = 'root' 
    def dbDriver = 'com.mysql.jdbc.Driver' 
    def db = Sql.newInstance(dbURL,dbUserName,dbPassword,dbDriver) 
    List authors = db.rows('SELECT name FROM Employee') 
    print authors 

}catch(Exception e){ 
    print "exception" 
}finally{ 
    //db.close() 
} 

但是,得到的異常說:如果運行像

groovy 1.groovy 

執行

Script1.groovy: 5: unable to resolve class com.mysql.jdbc.Driver 
@ line 5, column 30. 
DriverManager.registerDriver(new com.mysql.jdbc.Driver()) 

同一段代碼是成功的。

但jenkins scriptler無法檢測到這個jar文件。

in manager jenkins - > system information,我也可以看到系統環境變量的設置。

需要幫助。

+0

你永遠不應該叫'的DriverManager .registerDriver(new com.mysql.jdbc.Driver())',如果驅動程序位於類路徑中,並且是JDBC 4+驅動程序,則它將自動加載。 JDBC驅動程序使用'DriverManager'註冊自己。 –

回答

0

Jenkins有一個錯誤,它沒有讀取環境變量,也沒有Jenkins定義的變量,它考慮到了java本地路徑,它是/usr/lib/jvm/java-1.8.0-openjdk- 1.8.0.65-3.b17.el7.x86_64/JRE/lib/ext目錄

所以加了JDBC JAR在上面的路徑,並重新啓動詹金斯

希望這有助於