我的问题与此处发布的上一期非常相似:
我正在改编为 XL-Release 社区插件开发的代码。这个原始的社区“插件”只不过是一个迭代列表并创建与列表项一样多的任务的任务。我们对这个原始代码做了一些小改动,以便迭代 python 字典的列表,但我在这个方法上遇到了错误:
def addTaskToChangeVariable(value):
scriptTask = taskApi.newTask("xlrelease.ScriptTask")
print("The task is {} ".format(scriptTask))
scriptTask.script = "releaseVariables.update({})".format(value)
scriptTask.title = "{} ".format(value)
scriptTask = phaseApi.addTask(task.container.id, scriptTask, position)
# taskApi.lockTask(scriptTask.id)
错误是:
javax.script.ScriptException:com.xebialabs.deployit.checks.Checks$In CorrectArgumentException:com.xebialabs.deployit.checks.Checks$In CorrectArgumentException:第103行的任务索引超出范围
我仍在对 XL-Release 上的此错误进行故障排除
我相信您发生越界错误是因为该位置超出了您阶段内的任务索引。 如果您的自定义任务位于阶段顶部且索引 = 0,则此脚本可将值“bar”分配给文本变量“foo”。您只需要知道或计算有效位置即可。
def addTaskToChangeVariable(varname, value):
scriptTask = taskApi.newTask("xlrelease.ScriptTask")
print("The task is {} ".format(scriptTask))
scriptTask.script = "releaseVariables['{}'] = '{}'".format(varname, value)
scriptTask.title = "{} ".format(varname)
scriptTask = phaseApi.addTask(task.container.id, scriptTask, position)
# taskApi.lockTask(scriptTask.id)
position = 1
addTaskToChangeVariable("foo", "bar")