Jenkins+Maven+SVN
搭建自动部署,自动测试环境
《目录》
一、安装
Jenkins
二、配置
Jenkins
三、自动编译
四、自动测试
五、自动部署
一、安装Jenkins
地址
http://mirrors.jenkins-ci.org/ 下载适合的
Jenkins版本。
Windows最新稳定版的
Jenkins地址为:
http://mirrors.jenkins-ci.org/windows-stable/jenkins-1.409.1.zip
把
Jenkins 1.409.1版解压,把得到的
war包直接扔到
tomcat下,启动
tomcat,
Jenkins就安装完毕,是不是很简单啊。
二、配置Jenkins
1、打开
http://10.3.15.78:8080/jenkins/,第一次进入里面没有数据,我们需要创建
job,我们这有
2个项目,需要创建
2个
job。
http://10.3.34.163:9890/jenkins/
2、点击左上角的
new job,在
new job页面需要选择
job的类型,
Jenkins支持几种类型,我们选择“构建一个
maven2/3项目”
3、点击
OK按钮后,进会进入详细配置界面,详细配置界面的配置项很多,不过不用怕,大部分使用默认配置就可以了,下面就说说我们需要修改的几个地方:
3.1)Source Code Management
因为我们使用
SVN管理源码,所以这里选择
Subversion,并在
Repository URL中输入我们的
SVN地址:
http://10.3.34.163:9880/XXXX/trunk/
输入SVN库的URL地址后,Jenkins会自动验证地址,并给予提示。
点击红色字体部分的enter credential链接,进入页面
设置好访问SVN库的用户名和密码后,点击OK按钮
设置成功。点击Close按钮,返回之前的Source Code Management页面。此时不再有红色警告信息了。
3.2)配置自动构建的计划,假设我们想让项目中每天
12
点和晚上
8
点自动构建一次,只需要在
Build Triggers
中选择Build periodically
,并在
Schedule
中输入
0 12,20 * * *
。
我配置的是每晚
8
点自动构建
** **
注:
Schedule
的配置规则是有
5
个空格隔开的字符组成,从左到右分别代表:分
时
天
月
年。
*
代表所有,
0 12,20 * * *
表示“在任何年任何月任何天的
12
和
20
点
0
分”进行构建。
3.3)配置到这里,可能有人发现在Build配置节点,有红色错误信息,提示
Jenkins needs to know where your Maven2 is installed.
Please do so from the system configuration.
是因为
Jenkins
找不到
maven
的原因,点击
"system configuration"
,是
system configuration
的
maven
配置中添加
maven
目录就
OK
,如下图:
我设置了
JRE 6和
MAVEN 3的安装目录。
点击左下角的
SAVE按钮,保存设置。
3.4)保存好所有配置后,我们第1个job就算是完成了。
3.5)创建第2个job,配置和上面的配置相同。只需把
svn
地址改成:http://localhost/svn/Web
三、自动编译
在经过上面的配置后,回到Jenkins首页,在首页可以看到刚才添加的2个job
点击某1个job后后面的"Schedule a build"图片手动构建,点击完后,会在左边的Build Queue或者Build Executor Status
显示正在构建的任务,在自动构建完后,刷新页面,就可以看到构建结果了,如何某个项目构建失败,点击项目后面的构建数字
(从1开始递增)
进入项目的
"
Console Output
"
可以查看项目构建失败的原因。当然我们也可以配置把构建失败的结果发到邮箱。
到目前为止,
1
个简单的自动构建环境就搭建好了,很简单吧。
四、自动测试
在
maven的
pom.xml中配置
test resouce和
test class。
在
Jenkins中新建一个
mvn batch,如下
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 11. :@echo off
21.
31. setlocal
41.
51. set
6my.dir
7=%CD:~-11%
81.
91. if not "%my.dir%" == "\myproject" goto lerr1
101.
111. goto lgo
121.
131. :lerr1
141.
151. echo do at myproject directory
161.
171. goto lend
181.
191. :lgo
201.
211. call mvn clean
221.
231. call mvn test
241.
251. :lend
261.
271. endlocal
28
29
启动之后,就可以自动测试所有的
Junit
五、自动部署
看完上面发现
Jenkins
配置真的很简单,几分钟就搭建好自动构建环境,但环境搭建好后发现
1
个问题,现在是能自动构建了,但是构建好的
web.war
都还是在
Jenkins
目录下,并没有发布到
tomcat
中,还需要手动
copy
过去?
这是个问题,不过别急,要达到自动部署的目的,需要安装
1
个
Jenkins
的部署插件。选择“系统管理”菜单的“管理插件”:
选择“可选插件”,找到
Deploy Plugin 1.8插件,选择并安装它。
注:
Deploy Plugin 1.8插件支持
Tomcat 4.x/5.x/6.x/7.x ,
JBoss 3.x/4.x ,
Glassfish 2.x/3.x
点击底部的“安装”按钮,耐心等待,直到
Deploy Plugin完成,显示
Success。
选择框打钩,
Jenkins会自动重启:
此时,在插件管理的“已安装”
Tab页,可以看到部署插件已安装完毕。
重新进入
web的
configure 配置界面,在最下面会发现多处
1个配置项,让我们配置
tomcat的基本信息
注:
war file
使用的是
Jenkinsworkspace
的相对目录,
hudon
默认的目录在:
C:\Documents and Settings\用户名.Jenkins\
workspace
目录:
C:\Documents and Settings\用户名.Jenkins\ jobs\web\workspace\
最终产生的
war
在:
C:\Documents and Settings\用户名.Jenkins\ jobs\web\workspace\Web\target\web.war
注:可支持远程部署,用
Jenkins
做部署机器,和运营机器分开管理
保存配置再重新构建一次,打开
tomcat的
webapps目录,发现
web.war终于过来了,大功告成。