Я использую Job DSL, чтобы определить задание, требующее нескольких шагов maven для запуска. Это пример:Reuse maven step in Jenkins Job DSL
def mavenInst = 'maven-3x'
job('test') {
steps{
maven {
mavenInstallation(mavenInst)
goals('fuu')
}
maven {
mavenInstallation(mavenInst)
goals('bar')
}
// more steps of the same form.
maven {
mavenInstallation(mavenInst)
goals('fuu bar')
}
}
}
Таким образом, большая часть кода повторяется довольно часто.
Возможно ли сделать выпиской соответствующих частей описания должностных обязанностей и вызвать их из DSL задания? Я представляю что-то вроде этого:
def mavenInst = 'maven-3x'
job('test') {
steps{
myCustomStep('fuu')
myCustomStep('bar')
// more steps of the same form.
myCustomStep('fuu bar')
}
}
Это приведет к значительно меньшему количеству кода и будет легче изменить в будущем.
Я читал, что этапы нуждаются в каком-то контексте, но я не могу понять, как это сделать. Я попытался извлечь блок в замыкание конфигурирования, как это:
def fuubar = { it ->
mavenInstallation(mavenInst)
goals('fuu bar')
}
Но когда я называю элемент с configure fuubar
, ничего не отображается в результате работы configure.xml.
Любая помощь будет оценена по достоинству.
Второй подход почти что Мне нужно, хотя мне еще нужно выполнить _сепарационные шаги. Я думаю, что я могу повторить аналогичный путь над _goals_ и создать записи ** maven **. – Behe
Я добавил еще один пример – KeepCalmAndCarryOn
ОК, он решил проблему с вопроса, но что, если он использовал что-то другое для строительства? Или что, если у него было несколько строк кодов, которые повторяются много раз в скрипте? Можно ли создавать собственные методы для добавления некоторых фрагментов кода и вызова их в соответствующих местах? –