我在 Jenkins 中有一个插件,它通过 rest 操作远程服务器。
如何在构建中止时向服务器发送最后一个请求?就这样,优雅地完成了插件的工作?
我发现的对“中止序列”的唯一引用是this。这让我觉得这个过程非常粗糙,并且在它终止子(我的插件)之前我无法捕捉到信号。
我在 Jenkins 中有一个插件,它通过 rest 操作远程服务器。
如何在构建中止时向服务器发送最后一个请求?就这样,优雅地完成了插件的工作?
我发现的对“中止序列”的唯一引用是this。这让我觉得这个过程非常粗糙,并且在它终止子(我的插件)之前我无法捕捉到信号。
我有类似的需求,我用PostBuildScript Plugin解决了这个问题。
我选择运行构建步骤,但您可以运行其他几个选项。非常容易使用。无论构建如何结束(成功、失败或中止),我都有一个必须运行的脚本。这对我很有效。
我希望这有帮助。
当构建中止时,InterruptedException
抛出一个。您可以像任何其他异常一样捕获它,如果您愿意,不仅可以优雅地退出,还可以防止中止。
在您的boolean perform()
方法中,设置一个
try {
... // Whatever your plugin does
}
catch (InterruptedException e) {
// Code to handle build being aborted.
}
语句,它将处理运行构建步骤时发生的任何中止。在catch
语句中,您可以再次抛出InterruptedException
以继续中止构建,或者只是返回并让构建继续。