Jenkins的plugin开发
Jenkins强大的功能主要靠其丰富的plugin体现,之前的一篇博客《Jenkins安装plugin》中介绍了如何找到并安装需要的plugin。虽然目前已经有大量非常优秀的plugin可供使用,但是有时候仍需要自己开发一些满足项目特殊要求的plugin。下面通过一个简单实例,介绍Jenkins的plugin的整个开发过程。
1. 环境准备
1) 安装工具: Maven 3; JDK 6.0或以上版本,Eclipse SDK 4.2
2) 环境变量:PATH中添加mvn.bat路径;JAVA_HOME中添加SDK路径
3) 修改maven安装目录下conf文件夹中的settings.xml,添加如下配置:
<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>
<mirrors>
<mirror>
<id>repo.jenkins-ci.org</id>
<url>http://repo.jenkins-ci.org/public/</url>
<mirrorOf>m.g.o-public</mirrorOf>
</mirror>
</mirrors>
</settings>
2. 创建plugin
在命令行窗口中执行命令:mvn hpi:create,创建plugin项目的目录结构和POM文件。会提示输入groupId(相当于Java代码的package name)和artifactId(相当于Java代码的project name),如下图所示:
上面红色方框中就是提示输入groupId和artifactId的地方,下面红色方框的"BUILD SUCCESS”表示plugin项目创建成功。
3. 编译plugin
编译plugin项目,有两种方式,一种是用Maven命令方式,另一种是将plugin项目导入到Eclipse的方式。前者只需要执行一条Maven命令,如果不必编辑plugin项目的代码,这种方式非常方便。后者需要额外准备Eclipse开发环境,并需要Maven的Eclipse plugin将Eclipse和Maven关联起来,但是这种方式适合于对Eclipse比较熟的开发者。
3.1 Maven命令方式
在命令行窗口中plugin项目的目录下执行mvn package命令,会编译plugin项目,同时创建jar包和hpi文件。
3.2 导入到IDE方式
打开Eclipse,选择“File”->“import”->“Maven”->“Existing Maven Projects”,选择上步中Maven创建的文件夹myplugin,点击“ok”,如下图所示:
Eclipse会分析pom.xml文件并生成Java项目文件,忽略import过程中的warnings。Maven项目导入Eclipse之后的目录结构如下图所示:
在Maven build项目之前,必须先对项目Maven clean,这样才能保证自己开发的plugin在部署到Jenkins之后能够看得到,目前还不清楚为什么需要有这么一步。执行Maven clean和Maven build的方式是右击plugin项目,选择Run As -> Maven clean或者Maven build,如下图所示:
4. 测试Plugin
在命令行窗口中plugin项目的目录下执行mvn hpi:run,Maven会在Jetty中启动一个测试Jenkins,并将新开发的plugin部署到Jenkins中,在浏览器地址栏中输入http://localhost:8080/jenkins即可进入测试Jenkins。前面创建的plugin项目,只是输出你的名字,其他什么事情也没做,下面对其进行测试。
创建测试job:
在build step中选择"Say hello world"项(新开发plugin提供):
输入你的名字:
测试结果:
Reference
Jenkins的plugin开发的更多相关文章
- 使用 Jenkins 实现软件开发的持续集成
转自:http://www.ibm.com/developerworks/cn/java/j-lo-jenkinsintegrate/ Jenkins 是一种易于使用的持续集成系统,它可以使开发者从繁 ...
- [Cordova] Plugin开发架构
[Cordova] Plugin开发架构 问题情景 开发Cordova Plugin的时候,侦错Native Code是一件让人困扰的事情,因为Cordova所提供的错误讯息并没有那么的完整.常常需要 ...
- [Cordova] Plugin开发入门
[Cordova] Plugin开发入门 Overview Cordova的设计概念,是在APP上透过Web控件来呈现Web页面,让Web开发人员可以操作熟悉的语言.工具来开发APP.使用Web页面来 ...
- MS CRM 2011的自定义和开发(11)——插件(plugin)开发(三)
http://www.cnblogs.com/StoneGarden/archive/2012/02/06/2340661.html MS CRM 2011的自定义和开发(11)——插件(plugin ...
- MS CRM 2011的自定义和开发(11)——插件(plugin)开发(四)
http://www.cnblogs.com/StoneGarden/archive/2012/02/08/2343294.html MS CRM 2011的自定义和开发(11)——插件(plugin ...
- MS CRM 2011的自定义和开发(11)——插件(plugin)开发(一)
http://www.cnblogs.com/StoneGarden/archive/2012/02/02/2336147.html MS CRM 2011的自定义和开发(11)——插件(plugin ...
- MS CRM 2011的自定义和开发(11)——插件(plugin)开发(二)
http://www.cnblogs.com/StoneGarden/archive/2012/02/06/2339490.html MS CRM 2011的自定义和开发(11)——插件(plugin ...
- Flutter Plugin开发流程
这篇文章主要介绍了Flutter Plugin开发流程,包括如何利用Android Studio开发以及发布等. 本文主要给大家介绍如何开发Flutter Plugin中Android的部分.有关Fl ...
- Xamarin+Prism开发详解七:Plugin开发与打包测试
有了上章[Xamarin+Prism开发详解六:DependencyService与IPlatformInitializer的关系]的基础,现在来理解Plugin开发就简单了. 本文实例代码地址:ht ...
随机推荐
- 将VIM配置成强大的IDE(二)
将VIM配置成强大的IDE(二) 前面我们已经安装好了vundle这一款强大的插件管理工具. 下面,当然是配置我们需要的插件了. 在VIM下面通过命令 help vundle 我们可以知道,VUNDL ...
- Pyqt5 实时图像滚动
实时图像 写了一个关于实时图像滚动显示的例子,做个记录. 滚动算法: 难点: 将内存数据绘制到界面,需要用到QImage和QPixmap,使用QImage转换一下,具体参见代码.这个费了好大劲才弄出来 ...
- Git中从远程的分支获取最新的版本到本地
Git中从远程的分支获取最新的版本到本地有这样2个命令: 1. git fetch:相当于是从远程获取最新版本到本地,不会自动merge git fetch origin mastergit l ...
- LightOj_1104 Birthday Paradox
题目链接 题意: 若一年有n天, 问至少需要多少个人才能满足其中两个人生日相同的概率大于等于0.5? 思路: 经典问题:生日悖论 换成其互斥事件:m个人, 每个人生日都不相同的概率 ≤ 0.5 时最小 ...
- Sed&awk笔记之sed篇
http://blog.csdn.net/a81895898/article/details/8482387 Sed是什么 <sed and awk>一书中(1.2 A Stream Ed ...
- Eclipse的设置小细节提高开发效率
1. 自动联想功能增强 preference->java->Editor->Content Assist中, Auto activation triggers for java中默认 ...
- 【HDOJ】2589 正方形划分
暴力DFS /* 2589 */ #include <cstdio> #include <cstring> #include <cstdlib> #define M ...
- [LeetCode#202] Roman to Integer
Problem: Write an algorithm to determine if a number is "happy". A happy number is a numbe ...
- Apache HBase RPC身份验证中间人安全措施绕过漏洞(CVE-2013-2193)
漏洞版本: Apache Group HBase 0.94.x Apache Group HBase 0.92.x 漏洞描述: BUGTRAQ ID: 61981 CVE(CAN) ID: CVE-2 ...
- XP与Win2003下网站配置
一. 安装.net 4.0 1. 双击打开文件dotNetFx40_Full_x86_x64.exe.如图4.1 所示 (图4.1) 2. 勾选[我已阅读并结束许可条款],点击[安装]按钮.如图4.2 ...