【问题标题】:Obtaining list views in Jenkins from nested view plugin从嵌套视图插件获取 Jenkins 中的列表视图
【发布时间】:2015-10-03 07:12:11
【问题描述】:

我开发了一个插件,它的扩展点来自 ListViewColumn,但现在我在将它与另一个插件 Nested View Plugin 结合时遇到了问题。

我的插件可以让一个人在当前视图中选择作业并一键进行修改。但是当视图位于嵌套视图中时,我找不到该视图(从我的 java 代码和 jelly 脚本中)并且无法进行任何修改。在 columnHeader.jelly 我执行

${it.getHeaderText(view.name)}

getHeaderText() 定义为

public String getHeaderText(String viewName) {
    Hudson.getInstance().getView(viewName);
    // access all jobs from the return object of .getView(viewName)
    return viewName;
}

这适用于常规列表视图,但每当我进入嵌套视图的列表视图时,getView(viewName) 返回 null。

经过进一步调查,我注意到调用时会出现嵌套视图

Hudson.getInstance().getViews();

它只返回整个 Jenkins 实例顶层的视图(嵌套视图内没有视图)。在这里,我有一个嵌套视图,它显示并且是 hudson.plugins.nested_view.NestedView 的一个实例。但我似乎无法对这个对象做任何事情。

因此我想知道如何从 Jenkins 实例中获取所有列表视图?

我相信我必须在我的 pom.xml 文件中定义一个依赖项

<dependencies>
  <dependency>
    <groupId>nested_view.plugins.hudson</groupId>
    <artifactId>nested-view</artifactId>
    <version>1.526</version>
    <optional>true</optional>
  </dependency>
</dependencies>

为了能够使用作为 hudson.plugins.nested_view.NestedView 实例的对象。但是当将它添加到我的 pom.xml 时,它似乎不起作用。悬停在依赖标记上方(上面代码块的第二行)我收到消息

缺少工件 hudson.plugins.nested_view:nested-view:jar:1.526

我宁愿找到一种通过核心方法和对象获取所有视图的方法。但是如果我必须添加一个依赖项才能在嵌套视图中获取列表视图和作业,我该如何让它工作?


旁注:

This issue 是我想要做的,但getViews() 返回不包含 View 对象的 View 对象。另外,我想在java中做到这一点。但这对我一点帮助都没有……

// 博格

【问题讨论】:

    标签: java jenkins jenkins-plugins pom.xml


    【解决方案1】:

    我找到了解决问题的方法!

    由于我可以单独访问当前视图中的所有作业,而不知道我在哪个视图中,因此我可以将每个作业添加到后端的列表中,然后扫描 URL 以查看是否有人更改了视图(然后我会再次清除并重新添加作业)。

    如果有人回答您如何访问其他插件的对象以及如何正确添加依赖项,我们将不胜感激。

    干杯!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      相关资源
      最近更新 更多