Jenkins 的 Poll SCM 触发器为啥不生效?

UE丶秋花 阅读 4

我配置了 Jenkins 任务的 “Poll SCM” 触发器,填的是 H/5 * * * *,想每5分钟检查一次 Git 仓库有没有更新。但实际跑起来根本没触发构建,日志里也看不到轮询记录。我确定 Jenkins 服务器时间和代码仓库都没问题,手动构建是成功的。

是不是还要额外装什么插件?或者这个触发器在新版本里被弃用了?我看网上有人说要用 webhook,但公司 Git 服务器不支持外网回调,只能靠轮询。

我来解答 赞 18 收藏
二维码
手机扫码查看
1 条解答
Des.沐语
Poll SCM不生效这个问题我也踩过坑,排查起来确实挺烦的。说几个常见的原因:

首先看Jenkins的时区配置,虽然你说服务器时间没问题,但Jenkins可能用了自己的时区。去系统设置里检查下 java.util.TimeZone 配置是不是对的,不对的话用 -Duser.timezone=Asia/Shanghai 这种参数启动Jenkins。

然后看日志要开debug级别,默认日志可能不显示轮询记录。在Jenkins系统日志里加上这个配置:
hudson.triggers.SCMTrigger.level=FINER


还有个很坑的点是Poll SCM需要Jenkins能访问到你的git仓库。如果是私有仓库,确保Jenkins用的凭据有pull权限。可以用这个命令手动触发一次轮询测试:
curl -X POST http://jenkins/job/你的任务名/polling


最后吐槽下,H/5这种写法虽然官方推荐,但有时候会抽风。直接换成 */5 * * * * 试试,虽然不优雅但往往更可靠。这破功能确实没webhook好用,但内网环境下也只能忍了。
点赞 1
2026-03-09 07:01