基于jenkins整合ant和svn的持续集成环境-图文详解

摘要:Jenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控秩序重复的工作。通过jenkins和ant以及svn进行整合,可以完成对系统的源代码的自动下载更新,以及代码的自动编译打包和项目的自动部署(项目的自动构建部署)。而且项目的自动构建部署和平台无关,不限定时间,可以定时操作,将开发人员从测试环境的维护工作中解脱出来。

以下是jenkins+ant+svn持续集成环境的搭建和应用。

1.Jenkins的部署:

1.下载jenkins.war

2.有两种启动方法,首先保证系统中已经安装了jdk,最好是jdk1.5以上。

第一种启动方法,切换到jenkins.war存放的目录,输入如下命令:

$ java -jar jenkins.war

然后在浏览器中(推荐用火狐)输入http://localhost:8080,localhost可以是本机的ip,也可以是计算机名。就可以打开jenkins

第二种方法是用tomcat打开

解压tomcat到某个目录,如/usr/local,进入tomcat下的/bin目录,启动tomcat

将jenkins.war文件放入tomcat下的webapps目录下,启动jenkins时,会自动在webapps目录下建立jenkins目录,所以在地址栏上需要输入的地址于上一种方法有点不一样:

http://localhost:8080/jenkins

2.Jenkins对服务器的管理:

在jenkins中服务器被抽象成节点,这样就屏蔽了服务器操作系统的差异,实现了不同操作系统服务器的统一接口管理。登陆jenkins后的界面如下 (匿名的时候结构稍有差别,只能对服务器和项目进行浏览,而无法修改):

3d845a331676

结构大体上分成三部分,左上角是管理菜单,左下部分是节点列表,右边的部分是项目列表。

如果需要新建节点则选择系统管理菜单,会进入如下界面:

1e1708b4c788

其中系统设置是对系统的全局设置,其中有一项是关于svn连接失败重连次数的设置。

系统全局设置的界面如下,因版面过大,不再详述,下面是管理员管理用户的界面,都是中文,一看即懂,该界面红线矩阵圈住的就是svn连接失败重连次数设置,这个对以后svn自动更新代码比较重要:

f56e424de44f

其他的项不再详述,请大家自行摸索,返回系统管理界面,选择新建节点:

28389f42c2eb

输入节点名,一般情况下新加入一个服务器选择第一项即可。如果要顺利将该服务器加入到jenkins中需要安装jdk1.5版本以上,并且设置java_home和path环境变量,否则无法顺利配置。确保该服务器没问题后,点击OK进入节点配置界面:

0b6799861fdb

这个节点配置界面中,Description就是对服务器节点进行描述

# of executors表示最多同时执行的Job个数,一般情况下可以设置3个

Remote FS root 远程文件根目录,就是jenkins连接使用的jar包和新建Job后的根目录,

要遵循不同操作系统的文件夹格式设定,10.66.204.51服务器是win操作系统所以我设置为d:\jenkins,如果是linux或unix则可以设置为/jenkins。

Labels和用法两项的具体解释如下:

81d84a56c844

连接到节点服务器上的方式有如下四种。一般情况下linux和unix选择第一种即ssh,如果选择ssh则需要选择高级选项,输入host,用户名和密码。如果是win服务器的话则选择第二种方式,选择第二种方式则是JNLP连接,此时高级选项无需选择,但需要登录到该服务器后在该服务器上的浏览器打开jenkins,如下图:

881a2cd6a26a

此时我已经登录10.66.204.51上并登录了jenkins,此时点Launch按钮可自动连接

78704d4894b1

如果是用ssh连接的话需要点开高级填写HOST,Username,Password,端口号一般是默认22。若服务器ssh端口号不是22的话则需要设置该服务器ssh端口号

e3e3d28282ac

Availability项只需选择第一项即可。

设置好如上内容后,点击保存,一般情况下则可以顺利将服务器集成到jenkins中,但通过本人持续加入十几台不同操作系统的服务器后发现会出现一些问题。先将遇到的一些问题和解决方案说一下:

jenkins无法识别服务器上的JAVA_HOME和path环境变量,该问题出现在两台hp unix服务器上,一直无法正确读取已经更改好的profile文件。所以ssh虽然连接上,但是没办法下载jenkins的jar包服务器也无法成功集成。

解决方法是此时返回到该服务器节点的配置界面在界面最下部分有一个选项,如图选中,则会提示让你增加名值对,把java_home和path添加进去即可。

58f6076b5962

2.在连接的时候提示编码错误,无法识别编码格式,这种情况出现的一个AIX服务器上,无法识别中文格式的编码。此时需要修改服务器的编码格式,将其改为英文编码格式。

3.在连接win服务器时,点了Launch按钮如果无法自动连接。这种情况是浏览器版本太低,不支持该连接,此时可以尝试按钮下面提示的两种方式连接。

4.在成功连接后,ANT_HOME和path无法识别,出现在一台windows服务器上,和第一种情况的解决方法一样。

3.Jenkins对Job的管理:

在对Job的管理时,可以对Job进行分类管理,即是视图

3c30ab994517

红线矩阵中的+号即使增加新视图的功能链接点。

如果想要在某一视图下创建一个Job则需要选中该视图再点左边的新Job按钮建Job否则会在All视图下创建该项目,在进行过滤时无法在想要视图下显示该Job。

点新Job按钮后进入Job设置界面:

90193ee85ed6

输入Job名称,如果有相似Job已存在可以选最后一项拷贝已存在的任务,否则默认选择第一个选项,OK进入下个界面,因该界面板面过大故分两部分介绍:

ebcfcbbdbe13

上半部分中描述就是简述该Job,不做介绍,多选框中最后一项比较重要,他是让你决定要在哪台机器上持续构建该Job,选中后如下图:

eb2073e90153

此时输入想要构建该Job的节点名,输入会自动补全。源码管理选择Subversion,出现下面的选项

a3fd02ad72f0

第一项是svn的url地址,第二项默认的.无需更改。点URL右端的?按钮

9767dc603b36

选择后红线矩形圈着的this link链接,弹出如下界面,输入url以及用户名和密码然后点OK

6b87728f900e

下半部分如图所示:

5d70147c1c0e

第一项在其他项目构建完成后构建是需要两台服务器协同构建时才用到的

a65e73e8e284

选中第三项会出现日程表设置,这里是设置自动构建项目的日期,有五位数字

如:0 0 * * *表示每天的0点0分构建,第一位是分,第二位是时,第三位是日,第四位是月第五位是年,依次设定,*代表不限定。

增加构建步骤,在初次设定后,无需增加,jenkins会从你设定的svn代码库里将最新更新下来,如果需要编译部署则进行添加,有如下选项:

001cf9f0220c

第一项是在win服务器下dos执行的命令,第二项是在linux和unix下执行的shell命令

一般是执行ant脚本命令,以shell命令为例:每次构建就会执行该项目下的所有默认build.xml文件,如果不是build.xml 则执行ant --f fildname.xml命令

7830e377a28c

设置好保存后就可以进行下一步了。

完成好以上步骤之后,只要服务器目录下的ant脚本编译没有问题,就可以点击构建按钮进行构建了。

(文/zhangyj)

本文来源:http://p.primeton.com/articles/53cdf475e138230195000002


如果给你带来帮助,欢迎微信或支付宝扫一扫,赞一下。