在Jenkins中动态加载JDBC驱动的解决方案咨询
Jenkins Groovy动态加载MySQL JDBC驱动的解决办法
方案1:手动动态加载驱动类
在数据库连接代码前,通过类加载器加载驱动jar并注册驱动,无需重启Jenkins即可生效:
// 驱动jar的绝对路径 def driverJar = "/var/lib/jenkins/war/WEB-INF/lib/mysql-connector-j-8.4.0.jar" def jarUrl = new File(driverJar).toURI().toURL() // 创建类加载器,加载指定jar包 def customClassLoader = new URLClassLoader([jarUrl] as URL[], Thread.currentThread().contextClassLoader) // 加载并注册MySQL 8.x的驱动类(注意类名和老版本不同) Class.forName("com.mysql.cj.jdbc.Driver", true, customClassLoader) // 你的数据库连接代码保持不变 String url = "jdbc:mysql://host:port/db" Properties info = new Properties() info.setProperty("user", "${username}") info.setProperty("password", "${password}") info.setProperty("useSSL", "true") info.setProperty("serverSslCert", "/path/to/cert") Connection maildDbConnection = DriverManager.getConnection(url, info)
方案2:执行脚本时指定类路径
如果是通过Jenkins执行Groovy脚本,直接在调用时把驱动jar加入类路径:
- 命令行执行时:
groovy -cp /var/lib/jenkins/war/WEB-INF/lib/mysql-connector-j-8.4.0.jar your_script.groovy
- Jenkins Pipeline中使用
groovy步骤:
groovy( script: ''' // 这里放你的数据库连接代码 ''', classpath: ['/var/lib/jenkins/war/WEB-INF/lib/mysql-connector-j-8.4.0.jar'] )
方案3:全局类路径配置(一次性操作)
把驱动jar放到$JENKINS_HOME/lib目录下,重启一次Jenkins后,所有Groovy脚本都能直接识别驱动,无需再单独处理。
内容的提问来源于stack exchange,提问作者anechkayf
相关产品推荐
相关产品推荐

