Jenkins插件开发
一.环境配置
不赘述,直接看wiki:https://wiki.jenkins.io/display/JENKINS/Extend+Jenkins
二.内容说明
1.插件代码结构
src/main/java:主要存放Java 源码文件.
src/main/resources:Jelly/Groovy视图文件
src/main/webapp:静态资源文件,例如Html或者图片资源
2.插件入口
(1)部分插件的入口是一个Plugin的实现类(可选项),例如Android lint的入口为
/** Hooks up result actions with detail builders at startup. */ public class LintPlugin extends Plugin { @Override public void start() { LintDetailBuilder detailBuilder = new LintDetailBuilder(); DetailFactory.addDetailBuilder(LintResultAction.class, detailBuilder); DetailFactory.addDetailBuilder(LintMavenResultAction.class, detailBuilder); } }
这个方法会在 setServletContext(ServletContext)执行后调用,主要作用是初始化插件。
(2)简单实现拓展点extension points,通过@hudson.Extension注解实现自动注册
3.插件调试
(1)命令执行
ubuntu:
$ export MAVEN_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n" $ mvn hpi:run
Windows:
> set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000,suspend=n > mvn hpi:run
(2)打开 http://localhost:8080/jenkins
(3)在IDE中加对应断点调试(除非修改了pom.xml,其他情况不需要重新启动,jenkins会进行热加载)