如何在Jenkins单个视图中展示所有任务(含文件夹内任务扁平化列表)
实现Jenkins任务的扁平化视图(含文件夹内任务)
嘿,这个需求我太熟了!之前用文件夹对任务做结构化管理后,想要快速查看所有任务的全貌确实有点麻烦,分享几个靠谱的解决方案,从简单到进阶都有:
方法一:用Jenkins自带的列表视图(无需插件)
这是最省事的办法,不用额外装插件就能搞定:
- 打开Jenkins主页,点击右上角的 + New View
- 选择「List View」,输入视图名称(比如「所有任务概览」),点击「OK」进入配置页
- 在「Job Filters」区域,找到并勾选 Include jobs in folders 选项
- 如果需要展示所有任务,直接在「Job name filter」里填正则表达式
.*(匹配任意任务名);如果只想看特定类型的任务,可以写更精准的正则(比如.*build.*匹配含build的任务) - 保存配置后回到视图,就能看到所有任务的扁平化列表了——不管是根目录还是文件夹里的任务,都会直接列出来,不会嵌套显示文件夹结构
方法二:用Flat View插件(专门为扁平化视图设计)
如果觉得自带视图的功能不够灵活,可以试试这个专门的插件:
- 先到Jenkins的「插件管理」页面,搜索并安装 Flat View Plugin
- 新建视图时选择「Flat View」,输入视图名称后进入配置
- 这个视图默认就会展示所有文件夹内的任务,不需要额外勾选选项;你还可以在配置页设置任务排序方式、过滤条件(比如按任务状态、名称过滤),甚至自定义显示的列(比如最后构建时间、状态图标)
- 保存后就能得到一个简洁高效的扁平化任务概览,体验比自带视图更好
方法三:用Groovy脚本自定义视图(进阶需求)
如果需要更个性化的展示(比如添加自定义信息、特殊样式),可以用脚本视图实现:
- 先安装 Scriptler Plugin 或者直接使用Jenkins的「Scripted View」(旧版本可能自带)
- 新建视图时选择「Scripted View」,在脚本编辑框里输入Groovy脚本,示例如下:
// 遍历所有Job类型的任务,排除文件夹本身 Jenkins.instance.getAllItems(Job.class).findAll { !(it instanceof Folder) }.each { job -> def statusIcon = job.getIconClassName() def jobName = job.fullName def jobUrl = job.url def lastBuild = job.lastBuild ? job.lastBuild.number : "无构建记录" println """ <div style="margin: 8px 0; padding: 4px; border-bottom: 1px solid #eee;"> <span class="${statusIcon}" style="margin-right: 8px;"></span> <a href="${jobUrl}">${jobName}</a> <span style="float: right; color: #666;">最后构建:${lastBuild}</span> </div> """ }
- 保存脚本后,视图会按照你写的逻辑渲染出自定义的扁平化任务列表,适合有定制化需求的场景
注意事项
- 确保你的Jenkins账号有所有任务的查看权限,不然视图里会看不到你没有权限访问的任务
- 如果任务数量特别多,视图加载可能会变慢,建议搭配过滤条件缩小范围,或者使用支持分页的插件优化性能
内容的提问来源于stack exchange,提问作者Markus Weninger




