当前位置:  开发笔记 > 后端 > 正文

Jenkins共享库无法找到SQL驱动程序

如何解决《Jenkins共享库无法找到SQL驱动程序》经验,为你挑选了0个好方法。

这是Jenkins共享库中的新类.

共享库通过Manage Jenkins> Configure System下的标准方法加载

package com.mycorp.core;

@Grab(group='com.microsoft.sqlserver', module='mssql-jdbc', version='6.4.0.jre8')
import com.microsoft.sqlserver.jdbc.SQLServerDriver
import groovy.sql.Sql

class MySQLClass implements Serializable {
    def dbconnection
    def dbURL
    def dbUsername
    def dbPassword
    def dbDriver

    MySQLClass(databaseConfig) {
        //Set any instance variables required.    
        this.dbURL = databaseConfig.sql.url
        this.dbUsername = databaseConfig.sql.username
        this.dbPassword = databaseConfig.sql.password
        this.dbDriver = databaseConfig.sql.driver
    }

    def getConnection() {
        return Sql.newInstance(dbURL,dbUsername,dbPassword,dbDriver)
    }
}

databaseConfig对象配置为:

def databaseConfig = [
    url: 'jdbc:sqlserver://myhost:1433;databaseName=mydatabase',
    user: 'user',
    password: 'password',
    driver: 'com.microsoft.sqlserver.jdbc.SQLServerDriver'
]

当调用MyClass.getConnection()时,它失败并:

java.sql.SQLException: No suitable driver found for jdbc:sqlserver://myhost:1433;databaseName=mydatabase
    at java.sql.DriverManager.getConnection(DriverManager.java:689)
    at java.sql.DriverManager.getConnection(DriverManager.java:247)

不确定为什么'@Grab'和'import'没有提供驱动程序.

我试过添加:

@GrabConfig(systemClassLoader = true)

正如其他地方的建议但这会导致类失败编译 - Jenkins开始将其视为脚本而不是类,因此会抛出重复的类名错误.

任何想法Stackoverflow专家?

推荐阅读
罗文彬2502852027
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有