自定义开发jenkins插件实现案例

案例:简单实现监控所有jenkins job,实现当jenkins job执行完成之后进行消息通知

1、案例模版下载

前置条件:jdk环境、maven、网络畅通(下载依赖)

具体步骤可以照着jenkins官方文档: Preparing for Plugin Development

jenkins提供了几套模版案例,我们可以按照需求进行案例下载,节省开发时间。

mvn -U archetype:generate -Dfilter="io.jenkins.archetypes:"

 可能出现的问题:执行命令后可能你会发现执行sucess了,没有文档中出现的1-5选择。本地也是空的。解决方法是进入maven的conf/settings.xml中,把远程仓库地址改成默认官方maven2远程仓库地址:https://repo1.maven.org/maven2 。我之前配置的是aliyun仓库,出现的情况就是无法下载。

2、环境调试

为了方便开发调试,我下载的是4。这边有一点好处是,开发调试比较方便。执行 mvn hpi:run ,不需要自己再下载安装jenkins了,直接执行命令,当运行成功后访问http://localhost:8080/jenkins/就可以访问到调试jenkins平台,另外内容是保存着的,停止后下次执行创建的job信息这些都是存在的,不会还原。

3、开发测试

因为是需要监听job执行完毕后进行消息通知,所以自己需要用到RunListener

自己建一个类,比如BuildStatsListener.java,一定要加@Extension,不然不会被执行到。

@Extension
public class BuildStatsListener extends RunListener<Run<?,?>>{

因为是监听job执行完毕,并且发送消息,所以需要复写onCompleted方法。以下列举了几个自带的jenkins job参数和jenkins job自定义参数的获取(这里在job中配置一个自定义参数triggerUser)。

@Override
public void onCompleted(Run<?,?> run, @NonNull TaskListener listener){
    String jobName = run.getParent().getName();
    try {
        //获取jenkins job配置中的自定义参数
        String triggerUser = run.getEnvironment(listener).get("triggerUser");
    } catch (IOException e) {
        e.printStackTrace();
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    int number = run.getNumber();
    String jobUrl = run.getUrl();
    String status = run.getResult().toString();
    ......
    //调用消息通知接口,推送消息
}

其它功能实现(所有的jenkins类都在这里,可以自行查看): https://javadoc.jenkins.io/allclasses-noframe.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值