2012-10-09 158 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構建步驟可能會更容易一些,但如果您想讓某些事情爲其他人員工作,那麼製作一個體面的完整插件將減少支持請求。