groovy - 詹金斯找不到定义的功能?
问题描述
我写这篇文章是为了测试我在JENKINS-44085上看到的想法
def generateStage(String job, String targetVersion,
String rootVersion, Integer sleepTime=0) {
return {
stage("Deploying: ${job}") {
sleep sleepTime
println "Job: $job"
}
}
}
def deployProcs(targetVersion, rootVersion) {
script {
int sleepTime = 0
def procs = ["proc-proc", "proc-proc-high"]
def parallelStagesMap = procs.collectEntries {
["${it}" : generateStage(it, targetVersion, rootVersion, sleepTime)]
sleepTime += 5
}
timestamps {
parallel parallelStagesMap
}
}
}
node('linux') {
deployProcs(10, 10)
}
但我明白了
java.lang.NoSuchMethodError: No such DSL method 'generateStage' found among steps.
我错过了什么?
解决方案
您正在调用deployProcs(10, 10)
两个参数的类型为Integer
. 调用时使用相同的整数参数generateStage
,其中参数类型为String targetVersion
和String rootVersion
。
修复方法是调用deployProcs('10', '10')
或更改,或从函数参数def generateStage(String job, Integer targetVersion, Integer rootVersion, Integer sleepTime=0)
中删除类型。generateStage
推荐阅读
- javascript - 尝试制作:使用不和谐 js 做出反应以赋予角色
- python - 使用networkx查找三角形的总数
- java - 为什么我的反向 LinkedList 方法不能多次工作?
- python - Python:嵌套循环映射字段一一
- python - 如何迭代地搜索结构?
- blockchain - 挖矿节点如何获得相同的目标?
- istio - 如何为 Istio Egress 配置 SNI 直通
- javascript - 将 Python 后端与桌面应用程序的 HTML/CSS/JS 用户界面集成?
- r - 基于列条件从数据框中大量删除行
- asp.net-mvc - EF6 从数据库更新 Code First 模型