当前位置: 首页 > 知识库问答 >
问题:

无法在循环中创建freeStyleJob作业-没有方法的签名:script.freeStyleJob()适用于参数类型:Integer、Closure

韦泳
2023-03-14

我正试图为许多分支机构创造许多就业岗位。因此,目前我开发了一个检索所有分支的groovy脚本。请注意,我使用所提供的DSL脚本来实现这一点:

def project = "Test-Jobs"
def command = "git ls-remote -h $GIT_URL"

def proc = command.execute()
proc.waitFor()             

// trouver toutes les branches

def branches = proc.in.text.readLines().collect { 
    it.replaceAll(/[a-z0-9]*\trefs\/heads\//, '') 
}

println branches

此返回:

[feature/655, feature/BPDC-655, master, release/1.0.0, release/1.2.0, release/2.4.0]

然后,我尝试使用以下代码为每个分支创建一个名称作业:

def jobNames = branches.collect { it + "_test" }
println jobNames

这也很好。但是,我的问题是为每个分支机构创建freeStyleJob:

for (ii = 0; ii < jobNames.size(); ii++)
{    
    
  freeStyleJob(ii) {
    logRotator(-1, 10)
    steps {
        shell ("echo first programm")
    }
        }
    } 

但这根本不起作用。我得到了这个错误:

错误:(脚本,第26行)方法的无签名:script.freeStyle作业()适用于参数类型:(java.lang.整数,脚本$_run_closure3)值:[0,脚本$_run_closure3@4e08608d]可能的解决方案:FreeStyle作业(java.lang.字符串),FreeStyle作业(java.lang.字符串,groovy.lang.闭包)完成:失败

事实上,我多次尝试遍历jobNames列表对象,但通常都会出错。谢谢你的帮助。

共有1个答案

范稳
2023-03-14

免费样式作业块需要一个字符串变量。ii保留一个整数。您必须将其转换为String。几个选项:

freeStyleJob(ii as String) {
freeStyleJob(Integer.toString(ii)) {
freeStyleJob("${ii}") {
 类似资料: