开发 Jenkins 插件
一、环境准备
Jenkins 是基于 Java 开发的。所以要开发 Jenkins 插件,首先要安装 JDK、mvn 等工具
二、创建 Jenkins 插件项目
1、新建一个项目目录,并在命令行进入该目录后执行如下 mvn 命令
1 | mvn -U archetype:generate -Dfilter=io.jenkins.archetypes: |
如下图,创建成功显示 “BUILD SUCCESS”,这样在刚才那个目录下就多出了一个 demo 目录:
- 其中输入两次4,因为引用的是1.4的版本,所以输入两次4
- demo 是 artifatId,你可以随便输
- 版本,可以输也可以空着
- 最后输入 y,开始创建项目
三、构建并运行插件
1、命令行中进入 demo 目录,执行如下目录
1 | mvn hpi:run |
编译后可能会有如下错误,如图:
原因是 jenkins 插件需要在 jdk8上运行。安装 jdk 8后并修改 JAVA_HOME 后再次运行 mvn hpi:run 即可
我的安装目录在这里所以运行 export 修改临时 JAVA_HOME
1 2 | export JAVA_HOME= /Library/Java/JavaVirtualMachines/jdk1 .8.0_231.jdk /Contents/Home export PATH=$JAVA_HOME /bin :$PATH |
另外还要注意 jenkins 项目运行在 8080 端口所以要保证该端口没被占用
2、builder 成功后浏览器中访问如下地址,这样你就可以在本机上调试你的 Jenkins 插件了
1 | http: //localhost :8080 /jenkins/ |
如下图:
3、创建一个自由风格的 Jenkins 项目
4、添加 Say hello world 构建步骤
5、输入名称后点击 保存
6、点击 立即构建,并查看构建日志
四、修改 jenkins demo 插件代码
1、代码结果
2、前端页面对应修改位置
3、插件名称修改位置,当然以上都用了国际化文件,只是我没用而已
4、页面上对应组件的属性及 get、set 方法
5、参数检查(这里的检查是创建项目时的参数检查,不是构建时的参数检查),检查信息显示到如下图
6、构建后执行的方法,以及日志显示内容,后续主要业务就写到这里。
7、如果需要在构建时参数检查,按如下代码实现
五、打包
执行如下命令,打包生成 hpi
1 | mvn package |
在我的电脑上打包老是报错,可以选择如下命令跳过 test 后成功
1 | mvn package -DskipTests= true |
注:或者 默认 pom 编译老是报错,也没找到什么原因,没办法只能升级版本解决(但要注意你使用的 Jenkins 服务器版本,我就是因为公司用的版本低而又降了回去),修改内容如下
或者在第一步的时候选择 4 -> 14,也可以
六、在 Jenkins 中使用
6.1、Freestyle project
三 中已经讲过,就不再细讲了
6.2、Pipeline
第一种 node 形式,其中 webHost 是参数名,冒号后边是值
1 2 3 | node { step([$class: "RunSuiteBuilder" , webHost: 'http://localhost:8080/jenkins/job/pi/configure' , host: 'http://10.16.30.9:7171' , token: 'eyxxxxxxxxVs' , suiteId:22, timeout:120]) } |
第二种 stage 形式
1 2 3 4 5 6 7 8 9 10 | pipeline { agent any stages{ stage( 'QAplatform-plugin' ){ steps{ step([$class: "RunSuiteBuilder" , webHost: 'http://localhost:8080/jenkins/job/pi/configure' , host: 'http://10.16.30.9:7171' , token: 'eyxxxxxxxxVs' , suiteId:22, timeout:120]) } } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律