开发Jenkins post-build插件

时间:2012-10-09 21:03:34

标签: java jenkins hudson jenkins-plugins post-build

我目前正在开发一个简单的插件,可以从Jenkins构建中检索结果。我正在扩展通知程序并使用build.getResults()来获取信息。但是,当我上传我的插件时,我无法将其设置为后构建操作。
当我运行我的构建时,它们会在build.getResults()上中断,因为我在构建仍在运行时尝试获取结果。

我该怎么做才能正确获得构建结果?

2 个答案:

答案 0 :(得分:2)

最好的办法是查看existing plugins which use Notifier extension point(点击展开实施插件列表)。

检查您是否具有Descriptor实现(内部)类以及config.jelly。还要检查jenkins.out和jenkins.err日志中是否存在任何异常(例如malformed config.jelly)。

编辑:实际上,此插件的Notifier子类看起来非常简单,因为通知程序:https://wiki.jenkins-ci.org/display/JENKINS/The+Continuous+Integration+Game+plugin,请特别查看其GamePublisher.java和相应的config.jelly,它是GameDescriptor.java,其中已经成为一个完整的外部类(通常描述符是内部类)。此外,如果你想要选项进入Jenkins的全局配置,你需要一个global.jelly,但是如果你没有这样的选项,那就是你可以省略的东西(不像config.jelly,你必须拥有Notifier)即使它是空的,就像这里一样。)

总的来说,当事情不起作用时,它真的很烦人,而且你没有得到任何错误,你的东西根本就不是詹金斯显示的......如果你只想让事情为你工作使用Groovy构建步骤可能会更容易,但如果你想让其他人工作,那么做一个体面的完整插件会减少支持请求。

答案 1 :(得分:1)

由于这听起来很简单,你确定需要一个插件吗?看一下使用Groovy Postbuild step代替;他们写起来容易得多。链接中有一些很好的用法示例。如果您确定需要插件,请查看是否可以扩展现有插件而不是编写自己的插件;这是了解Jenkins插件编写的简单方法。