У меня последняя версия контейнера Jenkins от https://hub.docker.com/r/jenkins/jenkins. Я запускаю простой groovy скрипт из двух разных мест:
- Система Groovy Скрипт: изнутри
Manage Jenkins
-> Script Console
- Через фристайл-проект через
groovy command
шаг сборки
В обоих случаях сценарий один и тот же:
import jenkins.model.Jenkins
Jenkins server = Jenkins.instance
def job = server.getJob("TEST")
job.scheduleBuild2(0).get()
Предполагается, что сценарий запланирует сборку проекта фристайла TEST
. Тот же сценарий при запуске в качестве системного groovy сценария работает нормально и планирует сборку. Однако в случае (2) происходит сбой со следующей ошибкой:
/var/jenkins_home/workspace/TEST2/hudson7792470312777364424.groovy: 1: unable to resolve class
jenkins.model.Jenkins
@ line 1, column 1.
import jenkins.model.Jenkins
^
Я предполагаю, что случай 1 выполняется на главной JVM, а случай 2 - на разветвленной JVM (исполнитель). Во втором случае путь к классу установлен неправильно. Почему это так?