如何找到mysql-connector-java并将其添加到类路径

问题描述 投票:0回答:1

我有以下 Jenkins 版本和插件:

Jenkins 2.426.3

database:247.v244b_d85f086d
database-mysql:63.va_0596d2b_1438
mysql-api:8.4.0-31.va_b_5ce7933762

这是我连接到 mysql 数据库的代码:

Class.forName("com.mysql.cj.jdbc.Driver")

def url = 'jdbc:mysql://<host>:<port>/<db>'
def driver = 'com.mysql.cj.jdbc.Driver'
def sql = Sql.newInstance(url, "${username}", "${password}", driver)

失败并显示

No suitable driver found

从我在 stackoverflow 上阅读的所有问题/答案中,我认为失败的原因是 mysql-connector-java 驱动程序不在 CLASSPATH 中。

答案之一建议从 Jenkins 脚本控制台查找类路径,这是我发现的:

System.getProperty("java.class.path")
Result: /usr/lib/jenkins/jenkins.war

据我了解,jar文件打包在jenkins.war中。

我检查了

/var/lib/jenkins/war/WEB-INF/lib
中的内容,没有 mysql-connector-java 驱动程序(.jar 文件)。

我能够在

mysql-connector-j-8.4.0.jar
下找到
/var/lib/jenkins/plugins/mysql-api/WEB-INF/lib/
database-mysql.jar
/var/lib/jenkins/plugins/database-mysql/WEB-INF/lib/

我需要在哪里复制这些jar来摆脱

No suitable driver found
并连接到mysql?

jenkins jdbc groovy jenkins-pipeline mysql-connector
1个回答
0
投票

您是否尝试过使用 database-mysql-plugin 提供的包装器?例如,查看他们的测试:

import org.jenkinsci.plugins.database.mysql.MySQLDatabase

MySQLDatabase database = new MySQLDatabase(
    'foo.com:3306',
    'database-name',
    'user',
    'password',
    null)
© www.soinside.com 2019 - 2024. All rights reserved.