You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含Choice参数的Jenkins Cron定时任务配置失败,求解决方案

解决带ChoiceParam的Jenkins定时任务配置问题

问题描述

使用jCASC编写Groovy脚本配置带ChoiceParam参数的Jenkins Cron定时任务时,出现TimerTrigger实例化错误,无法同时实现参数配置与每6小时执行的需求。

原错误脚本

properties {
    pipelineTriggers {
        triggers {
            cron {
                spec('* h/6 * * *')
            }
        }
    }
}

parameters {
    stringParam('JENKINS_FILE_BRANCH', 'branch name', 'The Branch with the Jenkins File')
    choiceParam('SERVICE_NAME', ['service1' 'serivce 2'], 'Select a service to check the status for')
    choiceParam('DC', ['DC1', 'CD2'], 'Select a service to check the status for')
}

报错信息

ERROR: Could not instantiate {spec=* h/6 * * *} for hudson.triggers.TimerTrigger: java.lang.reflect.InvocationTargetException

修复方案

问题源于两处语法/配置错误,修正后即可正常运行:

1. 修正ChoiceParam的语法错误

第一个choiceParam的选项数组中,service1与service 2之间缺少逗号,且存在拼写错误(serivce改为service),导致脚本解析失败,需补充逗号并修正拼写。

2. 修正Cron触发器的配置写法

pipelineTriggers中无需嵌套cron { spec() }结构,直接使用cron('表达式')格式即可;Jenkins Cron中每6小时执行的标准表达式为* */6 * * *(h/6写法也支持,但*/6兼容性更强)。

修复后的完整脚本

properties {
    pipelineTriggers([cron('* */6 * * *')])
}

parameters {
    stringParam('JENKINS_FILE_BRANCH', 'branch name', 'The Branch with the Jenkins File')
    choiceParam('SERVICE_NAME', ['service1', 'service 2'], 'Select a service to check the status for')
    choiceParam('DC', ['DC1', 'DC2'], 'Select a data center to check the status for')
}

额外说明

  • 定时任务触发时会使用参数默认值执行,手动触发时可选择自定义参数值;
  • 已修正DC参数的描述文本(原描述与参数用途不符),可根据实际需求调整。

内容的提问来源于stack exchange,提问作者Mehboob Alam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 04:42:36