2016-06-19 2 views
1

Я новичок в работе DSL Plugin и даже Groovy.Как использовать закрытие Jenkins Job DSL Plugin в классных классах

Учитывая следующий сценарий:

class MyClass { 
    def create() { 
     folder('test') { 
     } 
    } 
} 

new MyClass().create() 

Я получаю следующее сообщение об ошибке:

javaposse.jobdsl.dsl.DslScriptException: (script, line 3) No signature of method: MyClass.folder() is applicable for argument types: (java.lang.String, MyClass$_create_closure1) values: [test, [email protected]] Possible solutions: find(), collect()

Ok, ясный. Groovy не находит метод, называемый «папкой» в моем классе. Но это не метод. Это команда задания DSL. Как я могу использовать их в своих классах?

ответ

1

Вам необходимо передать ссылку на скрипт в свой класс, см. Job DSL wiki.

class MyClass { 
    def create(def dslFactory) { 
     dslFactory.folder('test') { 
     } 
    } 
} 

new MyClass().create(this) 
+0

Thanks Daniel! Всегда сложно найти решение, если вы не знаете ключевые слова для google для ... – roehrijn

Смежные вопросы