我实际上设法自己解决了。也许还有其他方法,但是最好逐步浏览构建器列表,然后逐步浏览MultiJob模板的PhaseJobs列表。
MultiJob插件本身的代码为该解决方案提供了帮助。
import jenkins.model.*import com.tikal.jenkins.plugins.multijob.*def jenkinsInstance = jenkins.model.Jenkins.instance def templateJobName = "Multijob_Template"// Retrieve parametersdef newSfx = build.buildVariableResolver.resolve("NewSuffix")// create new MultiJobdef templateJob = Jenkins.instance.getJob(templateJobName)def newJob = Jenkins.instance.copy(templateJob, 'Multijob_' + newSfx)newJob.save()// get MultiJob BuildPhases and clone each PhaseJobdef builders = newJob.getBuilders()builders.each { builder -> builder.getPhaseJobs().each() { pj -> println "cloning phasejob: " + pj.getJobName() def subTemplate = Jenkins.instance.getJob(pj.getJobName()) def newSubJob = Jenkins.instance.copy(subTemplate, pj.getJobName().replaceFirst(/Template/, newSfx)) newSubJob.save() pj.setJobName(newSubJob.getDisplayName()) }}// update dependenciesjenkinsInstance.rebuildDependencyGraph()


