gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 04:28:37 24 4
gpt4 key购买 nike

这是 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 专家?

最佳答案

您可以手动注册驱动程序

MySQLClass(databaseConfig) {
//Set any instance variables required.
//...
DriverManager.registerDriver(new SQLServerDriver())
}

关于Jenkins 共享库无法找到 SQL 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49942683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com