使用Jenkins插件在Project页面上创建动态内容

时间:2014-06-18 17:40:17

标签: jenkins-plugins

我刚刚开始为Jenkins编写插件,而且我在能够找到的非常简洁的文档中遇到了很多进展。我尝试做的主要事情是生成动态内容,以放置在特定项目的顶级页面上。具体来说,我想展示一些源自项目最新版本的内容。

根据骨架项目和HTMLPublisher插件,我已经能够创建一个Publisher插件,用getProjectActions创建一个Action,并且该Action有一个floatingBox.jelly视图,其内容呈现在“项目”页面的顶部。到目前为止,非常好。

现在我想让这些内容充满活力。例如,我的Publisher插件可能会生成一些HTML内容作为构建后步骤,我想在Project页面的顶部显示这个HTML(来自最新版本)。或者(更有可能),我想要基于所有构建生成一些HTML,并显示它(例如,显示某些某种类型的"质量测量的图表"对于最后的N个构建中的每一个)。

我对maven和jelly来说是全新的,对Jenkins来说是个新手,所以任何帮助都会有用。

更新

我发现我可以在我的果冻脚本中使用${it}来访问Project对象,但我可以从那里访问我的Publisher实例,以便在其上调用一些方法来生成内容?

1 个答案:

答案 0 :(得分:1)

到目前为止,我唯一想到的就是遍历getPublishersList()对象上Project提供的发布者列表,并查找其类名与我的类匹配的发布者列表。我找不到在果冻脚本中做instanceof的方法。

<j:forEach items="${it.publishersList}" var="pub">
    <j:if test='${pub.class.name == "com.example.myPluginName.myPublisherClassName"}'>
       <!-- ${pub} is my Publisher instance, I can now invoke methods on it. -->
    </j:if>
</j:forEach>

或者,如果您使用jobMain.jelly代替floatingBox.jelly,那么${it}就是Action本身。