#jenkins #groovy #jenkins-job-dsl
#дженкинс #groovy #дженкинс-задание-dsl
Вопрос:
У меня возникла проблема с расширением использования команды jobdsl из скрипта groovy.
Я создал вспомогательный класс и передаю «это». Это работает для команд jobdsl, которые не требуют замыканий. Но сбой с недопустимым свойством для команды задания dsl, которая принимает замыкания. Примером является freestylejob(«inputstring»){}
Вспомогательный код
static freeJob(def fJ, def dslFactory){
def txt = dslFactory.freeStyleJob(fJ){
}
}
Вызывающий код
def testjob = DS.freeJob("inputstring", this)
Я не ожидаю ошибок. Вместо этого я получаю сообщение об ошибке ниже от Дженкинса.
ОШИБКА: (filename.groovy, строка 119) Сигнатура метода: .filename.freeStyleJob() не применима для типов аргументов: (org.codehaus.groovy.runtime.GStringImpl, имя_класса$_classname_closure3) значения: [входная строка, имя_класса$_project_closure3@5c7bc682]
Комментарии:
1. может быть, вам просто нужно использовать разделяемую библиотеку? не могли бы вы показать результат
dslFactory.getClass()
иdslFactory.getClass().getSuperclass()
2. для dslFactory.getClass() это класс java.lang. Класс и для dslFactory.getClass().getSuperclass() это класс java.lang. Объект
3. Спасибо. Ваш вопрос смог указать мне на решение.
Ответ №1:
Код вызывал метод из глубины класса. Проблема решена.