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

如何编写带多参数的Jenkins Cron定时任务?

Jenkins定时构建带参数失效的解决方法

你的问题出在Jenkins定时任务(Cron)表达式里不能直接追加参数键值对——标准Cron语法只支持时间部分,参数需要用专门的方式传递,下面分场景给出解决方案:

流水线(Pipeline)项目

方案1:在Pipeline脚本中设置定时触发的默认参数

在参数定义逻辑里判断当前构建是否为定时触发,若是则自动填充预设参数,手动构建时仍保留参数输入能力。修改你的Pipeline参数部分:

parameters {
    string(
        name: 'dog_type',
        defaultValue: params.dog_type ?: (currentBuild.getBuildCauses('hudson.triggers.TimerTrigger$TimerTriggerCause') ? 'poodle' : ''),
        description: '犬种'
    )
    string(
        name: 'dog_name',
        defaultValue: params.dog_name ?: (currentBuild.getBuildCauses('hudson.triggers.TimerTrigger$TimerTriggerCause') ? 'Molly' : ''),
        description: '狗狗名字'
    )
    booleanParam(
        name: 'generate_image',
        defaultValue: params.generate_image ?: (currentBuild.getBuildCauses('hudson.triggers.TimerTrigger$TimerTriggerCause') ? true : false),
        description: '是否生成图片'
    )
}

之后定时表达式只需写H 0 * * 1,无需附加任何参数。

方案2:使用Parameterized Scheduler插件

安装Parameterized Scheduler Plugin后,在项目配置的「Build Triggers」中选择「Parameterized Timer Trigger」,调度框按以下格式填写:

H 0 * * 1 % dog_type=poodle; dog_name=Molly; generate_image=True

注意:时间表达式与参数之间用%分隔,多参数用分号;隔开。

自由风格项目

直接使用上述的Parameterized Scheduler插件,配置方式和方案2一致,插件会在定时触发时自动传入指定参数。

额外排查点

  • 确认参数名称完全匹配(Jenkins参数大小写敏感,比如generate_image不能写成Generate_Image)
  • 查看Jenkins系统日志(Manage Jenkins → System Log),检查定时任务触发时是否有参数相关错误
  • 确保配置定时任务的Jenkins用户拥有足够的项目权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 19:25:28