一.環境配置
不贅述,直接看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會進行熱加載)