12

我在 Jenkins 中有一个插件,它通过 rest 操作远程服务器。
如何在构建中止时向服务器发送最后一个请求?就这样,优雅地完成了插件的工作?

我发现的对“中止序列”的唯一引用是this。这让我觉得这个过程非常粗糙,并且在它终止子(我的插件)之前我无法捕捉到信号。

4

2 回答 2

2

我有类似的需求,我用PostBuildScript Plugin解决了这个问题。

我选择运行构建步骤,但您可以运行其他几个选项。非常容易使用。无论构建如何结束(成功、失败或中止),我都有一个必须运行的脚本。这对我很有效。

我希望这有帮助。

于 2013-07-07T10:24:52.607 回答
2

当构建中止时,InterruptedException抛出一个。您可以像任何其他异常一样捕获它,如果您愿意,不仅可以优雅地退出,还可以防止中止。

在您的boolean perform()方法中,设置一个

try {
 ... // Whatever your plugin does
}
catch (InterruptedException e) {
    // Code to handle build being aborted.
}

语句,它将处理运行构建步骤时发生的任何中止。在catch语句中,您可以再次抛出InterruptedException以继续中止构建,或者只是返回并让构建继续。

于 2014-09-22T10:05:26.163 回答