基于Maven+SVN+tomcat+jenkins实现自动化部署

随着迭代的项目越来越多,研发到测试,测试到上线,频繁的版本发布耗费了大量的时间,在加上公司的现状是实施运维人员不能把部署发布工作跳起来,采用敏捷开发模式的项目随着版本频繁迭代光版本到测试、生产环境就占用了研发人员很多时间,所以基于Maven+SVN+tomcat+jenkins实现自动化部署势在必行。


 

  1. 基于Maven+SVN+tomcat+jenkins实现自动化部署架构的运行机制基于Maven+SVN+tomcat+jenkins实现自动化部署

  2. jenkins 安装部署

4、部署jenkins

 下载jenkins.war 后,  在tomcat中部署启动即可

(1)如果设置JENKINS_HOME则安装到对应目录,否则,对于windows系统,会默认装在C盘,部署到tomcat进行配置启动(根据配置向导进行就可以);(2)linux环境下启动jenkins后会自动选择一个目录

 

基于Maven+SVN+tomcat+jenkins实现自动化部署

如图所示:在linux下启动后:

   首次访问 需要将/root/.jenkins/secrets/initialAdminPassword 目录下的密码复制出来解锁系统。

   cat /root/.jenkins/secrets/initialAdminPassword

基于Maven+SVN+tomcat+jenkins实现自动化部署

5、根据向导配置jenkins、安装推荐插件

 

基于Maven+SVN+tomcat+jenkins实现自动化部署

基于Maven+SVN+tomcat+jenkins实现自动化部署

5、安装插件(做自动化部署必选插件)

      

6、站点镜像报错问题

如果网络环境不允许访问jenkins默认的更新站点镜像,可以修改为国内可用镜像地址。更新站点报错 ,需在插件设置里填写最新的插件更新站点 http://updates.jenkins-ci.org/update-center.json
清华大学开源软件镜像站jenkins镜像地址列表
http://mirrors.jenkins-ci.org/status.html

7、全局工具配置(重要)

基于Maven+SVN+tomcat+jenkins实现自动化部署

基于Maven+SVN+tomcat+jenkins实现自动化部署

基于Maven+SVN+tomcat+jenkins实现自动化部署

 


配置自动化部署任务

1、创建maven任务

基于Maven+SVN+tomcat+jenkins实现自动化部署

2、配置svn 用户名、密码

基于Maven+SVN+tomcat+jenkins实现自动化部署

 基于Maven+SVN+tomcat+jenkins实现自动化部署

3、构建后操作

基于Maven+SVN+tomcat+jenkins实现自动化部署

参数详解:

第一项(WAR/EAR files):是war包的相对路径(相对于工作区路径,即在工作区中war包的相对路径.)如我的maven执行完成之后会在工作区的target目录下生成项目.war,所以这里我的路径就写target\项目.war.

第二项:(content path):tomcat的发布路径,即使用localhost/(content path设置的名字)来访问项目.

最后一项是deploy on failure是发生错误的时候是否发布到tomcat.

4、tomcat配置文件添加

(1)在tomcat-users.xml中添加角色、用户、密码等信息

<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

(2)修改tomcat的访问权限(重要)

                 在 webapps\manager\META-INF下的contex.xml中配置访问tomcat的权限:

<Context antiResourceLocking="false" privileged="true" >
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
</Context>

基于Maven+SVN+tomcat+jenkins实现自动化部署

5、构建触发器

 

基于Maven+SVN+tomcat+jenkins实现自动化部署

Build periodically:周期进行项目构建(它不care源码是否发生变化),我的配置如下:
0 2 * * *  (每天2:00 必须build一次源码)

 

Poll SCM:定时检查源码变更(根据SCM软件的版本号),如果有更新就checkout最新code下来,然后执行构建动作。
1.首先格式为:* * * * *(五个星);

 

2.第一个*表示分钟,取值0~59
   第二个*表示小时,取值0~23
   第三个*表示一个月的第几天,取值1~31
   第四个*表示第几月,取值1~12
   第五个*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

 

6、启动自动化部署

基于Maven+SVN+tomcat+jenkins实现自动化部署

基于Maven+SVN+tomcat+jenkins实现自动化部署