Я использую Pipeline Maven Plugin 3.5.5 с Jenkins 2.89.2.
Из-за большого количества зависимостей между проектами Maven мы в основном полагаемся на snapshotDependencies()
, чтобы гарантировать, что задания Jenkins запускаются в правильном порядке. Я хочу повторно использовать данные, хранящиеся в базе данных $JENKINS_HOME/jenkins-jobs/jenkins-jobs.mv.db
H2, для построения графика зависимости между заданиями, а не только полагаться на характеристики, доступные в графическом интерфейсе Jenkins.
Если я скопирую файл H2 db из JENKINS_HOME и попытаюсь подключиться, я получу это:
@Grapes([
@Grab(group = 'com.h2database', module = 'h2', version = '1.4.196'),
@GrabConfig(systemClassLoader=true)
])
import groovy.sql.Sql
def url = "jdbc:h2:file:/jenkins/jenkins-jobs/jenkins-jobs;AUTO_SERVER=TRUE;MULTI_THREADED=1"
def user = "sa"
def password = "sa"
def driver = "org.h2.Driver"
def sql = Sql.newInstance(url, user, password, driver)
println(sql.executeQuery("SHOW TABLES"))
println(sql.executeQuery("SELECT * FROM INFORMATION_SCHEMA.TABLES"))
Результат:
rs0: null
Если вместо этого я попытаюсь использовать просто jdbc:h2:file:/jenkins/jenkins-jobs/jenkins-jobs.mv.db
(с расширением mv.db) в качестве URL, результат будет:
Caught: org.h2.jdbc.JdbcSQLException: Wrong user name or password [28000-196]
org.h2.jdbc.JdbcSQLException: Wrong user name or password [28000-196]
но мне неясно, откуда этот пароль. Попытка выше без имени пользователя и пароля дает следующее:
def user = ""
def password = ""
снова заканчивается пустым набором результатов rs0: null
Мне не понятно, как происходит доступ и чтение этой базы данных - и если для нее требуется пароль, то откуда он взялся?
Есть подсказки?