我刚刚开始为Jenkins编写插件,而且我在能够找到的非常简洁的文档中遇到了很多进展。我尝试做的主要事情是生成动态内容,以放置在特定项目的顶级页面上。具体来说,我想展示一些源自项目最新版本的内容。
根据骨架项目和HTMLPublisher插件,我已经能够创建一个Publisher
插件,用getProjectActions
创建一个Action,并且该Action有一个floatingBox.jelly
视图,其内容呈现在“项目”页面的顶部。到目前为止,非常好。
现在我想让这些内容充满活力。例如,我的Publisher插件可能会生成一些HTML内容作为构建后步骤,我想在Project页面的顶部显示这个HTML(来自最新版本)。或者(更有可能),我想要基于所有构建生成一些HTML,并显示它(例如,显示某些某种类型的"质量测量的图表"对于最后的N个构建中的每一个)。
我对maven和jelly来说是全新的,对Jenkins来说是个新手,所以任何帮助都会有用。
我发现我可以在我的果冻脚本中使用${it}
来访问Project
对象,但我可以从那里访问我的Publisher
实例,以便在其上调用一些方法来生成内容?
答案 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
本身。