Проблемы с расширением команды jobdsl на класс groovy

#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:

Код вызывал метод из глубины класса. Проблема решена.