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

是否存在可编辑其他Job选项的插件?需通过Job A修改Job B的Poll SCM

实现Jenkins Job A执行时修改Job B的配置(以Poll SCM为例)

完全可以实现,核心思路是利用Jenkins的Groovy脚本能力直接操作Job的配置对象,以下是具体方案:

必要前提

  • 给Job A的执行用户分配Job/Configure权限(针对Job B);若Jenkins开启安全模式,还需分配Script Approval权限,确保脚本能正常执行。

具体实现步骤

在Job A中添加一个执行步骤,通过Groovy脚本修改Job B的配置:

  1. 选择「Execute system Groovy script」步骤(需确保已安装Groovy插件),或「Execute Groovy script」步骤。
  2. 编写如下示例脚本(以修改Poll SCM触发规则为例):
// 定位目标Job B,若Job在文件夹下需写全路径,如'Folder/JobB'
def jobB = Jenkins.instance.getItemByFullName('JobB')
if (!jobB) {
    throw new Exception("未找到Job B,请检查名称是否正确")
}

// 查找并修改Poll SCM触发器
def scmTrigger = jobB.triggers.find { it instanceof hudson.triggers.SCMTrigger }
if (scmTrigger) {
    // 将轮询规则改为每天凌晨2点执行,可按需修改为自己的规则
    scmTrigger.spec = 'H 2 * * *'
} else {
    // 若Job B原本没有Poll SCM触发器,直接添加一个
    def newScmTrigger = new hudson.triggers.SCMTrigger('H 2 * * *')
    jobB.addTrigger(newScmTrigger)
}

// 保存修改后的配置
jobB.save()

其他注意事项

  • 安全模式下首次执行脚本时,需前往「Manage Jenkins」→「In-process Script Approval」批准脚本中用到的类和方法,否则会触发权限拦截。
  • 除了Poll SCM,这种方式也能修改Job的其他配置项,比如构建参数、构建步骤、环境变量等,只需找到对应Job对象的属性进行修改后保存即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 09:25:01