小编ase*_*hra的帖子

Jenkins:以编程方式创建Jenkins嵌套/ ListView视图

我试图在给定的父视图下创建jenkins视图(ListView).我能够在顶层创建视图,但无法找到在给定父视图下创建视图的方法.我使用groovy来实现这一点.下面是用例:1.我使用嵌套视图插件来组织作业.2.叶级视图是Jenkins ListView,所有作业都放在叶级视图下.

为了自动化视图创建过程,我需要能够在视图层次结构中的给定级别(或在给定的父视图下)创建视图.我能够创建视图,但它始终作为顶级视图创建.下面是我正在为此工作的脚本.使用此脚本,即使我传递父视图,它也会在顶级创建.

import jenkins.model.* 
import hudson.model.ListView
import hudson.model.*

def name = 'Top_Level_View'
def viewObj = Jenkins.instance.getView(name)
def parentObj = viewObj.getOwner()


parentObj.getViews().each { 
   if( it.name == 'Top_Level_View'){
    it.getViews().each{
                if( it.name == "DevTools_View"){
                      it.getViews().each{
                           println "Views under DevTools_View: " + it.name
                           if(it.name == "1_Build_Triggers"){
                                  println "Parent Name: " + it.getOwner().name
                  //Create a view under a given parent.
                                  Jenkins.instance.addView(new ListView('Hello',it.getOwner()))
                                  it.getOwner().getViews().each{
                                    println "print view Name: " + it.name
                                  }
                           }
                      } 
                }
    }
  }
} 
Run Code Online (Sandbox Code Playgroud)

这是进一步的分析.参与视图创建过程有两个主要类:hudson.model.ViewGroupMixIn和jenkins.model.Jenkins.必须调用Jenkins.addView(视图视图)方法才能创建视图.此方法调用ViewGroupMixIn类的addView()方法.

来自Jenkins类的addView

public void addView(View v) throws …
Run Code Online (Sandbox Code Playgroud)

jenkins jenkins-plugins

12
推荐指数
1
解决办法
6792
查看次数

标签 统计

jenkins ×1

jenkins-plugins ×1