为何我的代码无法获取Jenkins全部视图?Jenkins v2.263.3
问题原因与解决办法
在Jenkins v2.263.3这类旧版本中,jenkins.getViews()只能获取Jenkins根节点下的顶级视图,如果你的视图是嵌套在Folder(文件夹插件)或者多分支项目这类容器里的,这段代码就无法遍历到这些子视图。
修正后的代码(递归遍历所有视图)
import jenkins.model.* import com.cloudbees.hudson.plugins.folder.Folder // 定义递归遍历视图的方法 def traverseViews(def container) { // 遍历当前容器下的所有视图 for (view in container.getViews()) { println view.getDisplayName() // 如果当前视图是Folder类型,递归遍历其子视图 if (view instanceof Folder) { traverseViews(view) } } } // 从Jenkins根节点开始遍历 traverseViews(Jenkins.instance)
补充说明
- 这段代码会递归遍历所有层级的文件夹视图,包括嵌套在文件夹里的子视图
- 如果你的Jenkins还使用了其他类型的视图容器(比如多分支项目),可以在
instanceof判断里添加对应的类(比如org.jenkinsci.plugins.workflow.multibranch.WorkflowMultiBranchProject),确保所有视图都被覆盖 - 执行代码前要确认你有足够的权限(比如系统管理员权限),否则可能无法访问部分视图或文件夹
内容的提问来源于stack exchange,提问作者Chris F
相关产品推荐
相关产品推荐

