你的位置:首页 > Java教程

[Java教程]jenkins本质


Jenkins简介

Jenkins是Java编写的开源的持续集成工具。在与Oracle发生争执后从Hudson项目复制而成。
Jenkins提供了软件开发的持续集成服务。它是运行在Servlet容器(例如Apache Tomcat)的服务器。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC等),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。Jenkins的主要开发者是Kohsuke Kawaguchi。Jenkins是在MIT许可证下发布的自由软件。

可以通过各种手段触发构建。例如提交给版本控制系统时被触发,也可以通过类似Cron的机制调度,也可以在其他的构建已经完成时,还可以通过特定的URL进行请求。类似的软件有Buildbot、Tox等,另外python中的Django-Jenkins也有一定知名度。
下面是python中使用较多的jenkins相关库:

https://pypi.python.org/pypi/jenkinsapi A Python API for accessing resources on a Jenkins continuous-integration server. 使用最多的python jenkins库。
月下载:6万多
文档:https://github.com/salimfadhley/jenkinsapi
安装:pip install jenkinsapi
用法:

>>> import jenkinsapi>>> from jenkinsapi.jenkins import Jenkins>>> J = Jenkins('http://localhost:8080')>>> J.version1.542>>> J.keys() # Jenkins objects appear to be dict-like, mapping keys (job-names) to['foo', 'test_jenkinsapi']>>> J['test_jenkinsapi']<jenkinsapi.job.Job test_jenkinsapi>>>> J['test_jenkinsapi'].get_last_good_build()<jenkinsapi.build.Build test_jenkinsapi #77>


https://pypi.python.org/pypi/jenkins-job-builder Manage Jenkins jobs with YAML
月下载:1万多
文档:http://python-jenkins.readthedocs.org/en/latest/

https://pypi.python.org/pypi/python-jenkins Python bindings for the remote Jenkins API
月下载:3万多
文档:http://python-jenkins.readthedocs.org/en/latest/

https://pypi.python.org/pypi/jenkins-autojobs Scripts for automatically creating Jenkins jobs from SCM branches
月下载:2千多
文档:http://jenkins-autojobs.readthedocs.org/en/latest/

https://pypi.python.org/pypi/jenkins-job-builder-naginator Automatically reschedule a build after a build failure.
文档:jenkins-job-builder-naginator.readthedocs.org
月下载:5千多

https://pypi.python.org/pypi/django-jenkins Plug and play continuous integration with django and jenkins
文档:jenkins-job-builder-naginator.readthedocs.org
月下载:2万多

https://pypi.python.org/pypi/autojenkins Jenkins Remote Control Library
月下载:2千多
文档:http://pythonhosted.org/autojenkins/

另外通过python plugin: https://wiki.jenkins-ci.org/display/JENKINS/Python+Plugin可以直接执行python代码。

 

jenkins常见的使用流程如下:

Jenkins有千余插件,详细列表参见:https://wiki.jenkins-ci.org/display/JENKINS/Plugins。插件教程参见:https://wiki.jenkins-ci.org/display/JENKINS/Plugin+tutorial。插件下载:https://updates.jenkins-ci.org/download/plugins/。

Jenkins安装



进入https://jenkins-ci.org/,在右侧的Native packages下面选择对应的操作系统,这里以Centos为例。点击Centos链接,进入http://pkg.jenkins-ci.org/redhat/。网页的黑底部分即jenkins的安装方法。


更多资料参见:https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Red+Hat+distributions
注意jenkins当前版本(1.638)要求java 1.7以上的版本。且不能使用centos默认的openjdk,到http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html下载对应的Linux rpm包安装。

 

快速入门

 这里我们添加一个git项目。

“ Manage Jenkins" -> "Manage Plugins" -> "Available", 输入 github :


创建Freestyle project:

执行编译:

 

查看Workspace页面:

张家界旅游攻略大全张家界旅游路线推荐张家界自驾游攻略张家界旅游线路大全什么时候去张家界旅游最好儿童购买火车票有优惠吗? 番禺香江野生动物园门票多少钱? 海珠客运站在哪里?电话是多少? 可以用来买火车票的有效证件有哪些? 中东地区最大的清真寺:阿联酋扎耶德大清真寺 2015花都宝桑园桑果节桑果价格?宝桑园桑果节桑果免费吃吗? 畅游江苏 江苏赏花景区精选指南 2015花都宝桑园桑果节要门票吗?宝桑园桑果节门票价格? 厦门湖里山炮台有什么好玩的? 北京园博馆在哪里?要不要门票? 厦门具体有多少个区?有什么好玩的? 2015去惠州南昆山有什么好玩的? 番禺宝墨园好玩吗?广州番禺宝墨园怎样? 你不知道的越南:关于越南的胡扯与真相 番禺宝墨园自助游攻略?广州番禺宝墨园走哪条高速? 番禺宝墨园怎么去?广州番禺宝墨园自驾攻略? IDT70V3579S5BF8 Datasheet IDT70V3579S5BF8 Datasheet IDTCV136PAG Datasheet IDTCV136PAG Datasheet IDTCV136PAG8 Datasheet IDTCV136PAG8 Datasheet 鸟巢冰雪节 鸟巢冰雪节 鸟巢冰雪节 福田口岸去迪士尼 福田口岸去迪士尼 福田口岸去迪士尼 广州水墨园 广州水墨园 广州水墨园