是否存在可编辑其他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的配置:
- 选择「Execute system Groovy script」步骤(需确保已安装Groovy插件),或「Execute Groovy script」步骤。
- 编写如下示例脚本(以修改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
相关产品推荐
相关产品推荐

