jenkins job dsl - 没有方法签名 : java. lang.String.call()

标签 jenkins groovy dsl jenkins-groovy jenkins-job-dsl

我无法运行这段代码:

buildPath = 'applications'
buildJob(['java', 'nodejs'])


def buildJob(def jobList){
  for(job in jobList){
    def jobName = "${job}_seed"
    def jobDescription = "Jenkins DSL seed for ${job}"
    def jobScriptPath = "resources/dsl/${jobName}.groovy"
    job("${buildPath}/${jobName}")
  }
}

所以,我收到了这个错误:

Processing provided DSL script
ERROR: (script, line 12) No signature of method: java.lang.String.call() is applicable for argument types: (org.codehaus.groovy.runtime.GStringImpl) values: [applications/java_seed]
Possible solutions: wait(), any(), wait(long), take(int), each(groovy.lang.Closure), any(groovy.lang.Closure)
Finished: FAILURE

我看不到导致此错误的位置或原因。我在 buildJob(def jobList) 函数之外创建了一个作业,它正在运行,但我需要执行循环以自动创建作业。

有什么想法吗?

最佳答案

发布一个我遇到过的类似问题。网上关于这个问题的报道不多。

没有方法签名:java.lang.String.call() 适用于参数类型:(java.lang.String) 值:[some-value]

假设我们正在实现一个作业 dsl 插件 ( https://github.com/jenkinsci/multibranch-build-strategy-extension-plugin),例如:

includeRegionBranchBuildStrategy {

    includedRegions(String value)

}

我们有这样的代码:

def includedRegions = r ? String.join("\n", r) : null

branchSources {
  branchSource {
    buildStrategies {
      if(includedRegions){
        includeRegionBranchBuildStrategy {
          includedRegions(includedRegions)
        }
      }
    }
  }
}

需要重命名您的变量才能使其正常工作!例如,该方法不能与上面定义的 var 同名。

def regions = r ? String.join("\n", r) : null

branchSources {
  branchSource {
    buildStrategies {
      if(regions){
        includeRegionBranchBuildStrategy {
          includedRegions(regions)
        }
      }
    }
  }
}

关于jenkins job dsl - 没有方法签名 : java. lang.String.call(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57259886/

相关文章:

tomcat - 注销时如何防止tomcat服务器关闭?

tomcat - 如何在不抛出 InterruptedException 的情况下安全地重启部署在 tomcat 上的 hudson/jenkins?

java - 使用 Grails/Java 获取 404 的正文

groovy - Groovy ASTTransformation-在闭包内部执行forLoop的collectionExpression

scala - 使用内部 DSL 重写模式匹配?

ios - 开始。致命的 : Log statements out of sync: current test suite 'TestTarget.xctest' not exists

java - Selenium 脚本在 jenkins 中失败,但在本地运行良好

jenkins - 无法在Jenkins共享库的单元测试中导入包

java - 常规错误 MissingPropertyException : No such property

java - 如何中断或取消 Spring Integration Java DSL 流程?