一、jenkins、tomcat、maven的安装配置
tomcat配置:jenkins集成tomcat时需要将部署应用,tomcat需要配置指定用户和角色,在tomcat_user.xml中添加如下配置:
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="tomcat_user" password="123456"
roles="manager-gui,manager-script,manager-jmx,manager-status" />
二、准备一个web工程并与svn关联
为了方便测试,需要准备一个简单web项目,并与svn关联,此处就不多做说明,我新建了一个简单的hello world!web程序
三、在Jenkins配置maven、jdk
按上图位置打开全局工程配置页,分别配置maven、jdk,此处应选择jenkins所在服务器中相应目录,同时不要选择自动安装
四、新建jenkins任务
1. 新建任务,输入任务名称,选择自有风格软件项目后,点确定
2.配置源码管理
此处需要注意两点,在配置URL时需要在最后添加@HEAD指向svn仓库顶层,否则后边在自动部署时每次都只能看到上一次部署的内容;第二在配置svn账户密码时,先点add添加完成后需要在下拉框里再选择刚配置的账户(有些反人类)。
3.配置构建
3.配置构建后操作
在上一步中我们可以对svn中项目进行手工编译,那么此步操作就可以对将编译的成果做处理,我们的工程是web项目,那在此就可以将上一步的成果war包部署到tomcat中。
需要注意的是war路径为我们工程的相对路径,tomcat url为tomcat管理界面访问地址。
至此,我们的Jenkins已经可以进行手工代码编译并自动部署至tomcat了,我们可以回到任务下进行立即构建进行手工编译,然后通过浏览器来验证我们的成果
4.配置构建触发器来实现自动编译部署
选择触发远程构建,身份验证令牌是自定义的,之后远程触发地址如下,将地址在浏览器中回车,就能看到Jenkins自动编译并部署了。至此,我们也实现了jenkins自动编译和部署了,但与我们想要的效果还是有差异,我们想要的是在svn提交了代码后,jenkins就自动来完成编译部署,请继续往下看。
格式:JENKINS_URL/job/工程名/build?token=TOKEN_NAME
示例:http://ip:8088/job/jenkins/build?token=ZTOONE_JENKINS
四、在svn中配置钩子程序
提示,为了能够完成下列操作,我们需要关闭Jenkins的防止跨站点访问,在系统管理>>全局安全配置下关闭。
为了实现svn提交后Jenkins自动完成编译、打包、部署,我们先来了解下curl钩子程序。
curl是Linux提供的指令,格式如下。
格式:curl -X post -v -u jeknkins账户:jeknkins密码 url
示例:curl -X post -v -u username:passwd http://ip.com:8088/job/jenkins/build?token=ZTOONE_JENKINS
最后,在我们的svn仓库hook目录下复制一份post-commit.tmp,命名为post-commit
并对post-commit编辑,在文本最后,注释掉后两行,并添加前边准备的curl钩子程序,保存退出
--------------------------------------------------完美的分割线-----------------------------------------------------
到这里Jenkins+maven+svn的自动化部署就完成了,快去测试吧,在我们的ide工具中提交代码,喝口水就直接在浏览器中能访问最新内容了,是不是美美哒!!!