2012-10-09 169 views
6

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

我能做些什么才能正确获取构建结果?
开发Jenkins构建插件

回答

1

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

+0

我一直在使用Groovy Postbuild插件来调用一个安全的Web服务(由Coverity Connect 6.5.3公开),并且整个Jenkins JVM都运行在PermGen(JDK 1.7 update 15)之外。到目前为止,Groovy Postbuild插件在调用SonarQube的REST服务方面工作良好。总之,只要注意Groovy Postbuild插件可能有限制。 – buzz3791

+0

这个答案应该提供如何在建议使用现有插件之前执行此操作的示例。 –

+0

@JohnZeller在我提供的链接中有很多使用示例,但我已经编辑了答案以使其更清晰。 –

2

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

检查您是否有Descriptor实现(内部)类以及config.jelly。另外检查jenkins.out和jenkins.err日志是否有任何异常(例如格式错误的config.jelly)。

编辑:其实,这个插件的通知子看起来很简单,因为通告去:https://wiki.jenkins-ci.org/display/JENKINS/The+Continuous+Integration+Game+plugin,看到特别是其GamePublisher.java和相应的config.jelly,这是GameDescriptor.java,已经做了充分的外部类(通常描述为内部类)。另外,如果你想要选项进入Jenkins的全局配置,你需要一个global.jelly,但是如果你没有这样的选项,那么你可以忽略它(与config.jelly不同,即使它是空,就像这里)。

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