首先jenkins插件开发并不是什么神秘的事情,hudson wiki上有extend plugin文档和实际操作。 传送门:wiki地址。
一、插件开发环境:
1. maven2 以上
2. JDK1.6 以上maven和JDK都需要加入到环境变量中
二、配置
修改~/.m2/settings.xml(本地maven仓库路径)或者maven/config/settings.xml(maven安装目录路径)
<settings> <pluginGroups> <pluginGroup>org.jenkins-ci.tools</pluginGroup> </pluginGroups> <profiles> <!-- Give access to Jenkins plugins --> <profile> <id>jenkins</id> <activation> <activeByDefault>true</activeByDefault> <!-- change this to false, if you don't like to have it on per default --> </activation> <repositories> <repository> <id>repo.jenkins-ci.org</id> <url>http://repo.jenkins-ci.org/public/</url> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>repo.jenkins-ci.org</id> <url>http://repo.jenkins-ci.org/public/</url> </pluginRepository> </pluginRepositories> </profile> </profiles> </settings>
三、命令a.cmd选择一个路径
b.该路径下执行创建插件命令:<span style="font-size:18px;">mvn hpi:create</span>
该操作需要你输入一些参数,groupid,artifactid(GroupID是项目组织唯一的标识符,实际对应JAVA的包的结构,是main目录里java的目录结构。ArtifactID就是项目的唯一的标识符,实际对应项目的名称,就是项目根目录的名称。)之后会创建一个新的插件模板便于开发者之后的开发工作。
c.查看该路径下的代码结构如下:
插件目录结构
pom.xml:Maven的构建配置文件
src/main/java:Java源文件目录
src/main/resources:插件Jelly/Grovy视图
src/main/webapps:插件的静态资源如images和html文件
d.编译和执行插件:
<span style="font-size:18px;">#设置启动参数及启动端口</span>
<span style="font-size:18px;">set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8080,suspend=n mvn hpi:run</span>
<span style="font-size:18px;">或者</span>
<pre name="code" class="html"><span style="font-size:18px;">mvn hpi:run -Djetty.port=8090</span>
执行hpi:run 可以开启一个test模式的hudson,其内置安装了当前开发中的插件,通过localhost:8080可以访问。hpi:run 命令包含了几个子task:启动jetty服务器,添加hudson为web项目、安装当前插件。
执行hpi:run命令后,会多出几个文件夹
- 插件的work子目录成为了当前Hudson的Home目录,work/plugins子目录则包含了一些hpi文件(对应于当前hudson中的插件列表);仔细点可以发现当前的目录中
- 有一个hpl为后缀的文件,其对应了当前的helloworld插件项目;这是一个简单的文本文件,其内部描述了与当前项目构建相关的文件(包括classes、jars和resources)每次执行hpi:run命令时,HPI工具都会生成该文件,而Hudson解释该文件并直接加载该插件(而不需要把插件打成hpi的包)