Jenkins+SVN+Maven自动化部署环境搭建

栏目: 编程工具 · 发布时间: 7年前

内容简介:Jenkins+SVN+Maven自动化部署环境搭建

前言

因今年公司新产品线较多,为了降低耦合,达到业务分离、重用,提高内部开发效率的目的,采用了基于服务组件、前后端分离的架构体系。与之前传统单应用架构相比,系统部署、配置更加复杂,为了能够频繁地将软件的最新版本,及时、持续地交付给测试团队及质量控制团队,以供评审,所以引入持续集成工具Jenkins,从而实现公司新产品持续集成,自动化部署。

环境准备

安装Jenkins

  1. 运行下载好的Jenkins安装包jenkins.msi,选择安装路径,点击”安装“,等待安装完成;

    Jenkins+SVN+Maven自动化部署环境搭建

    Jenkins+SVN+Maven自动化部署环境搭建

    Jenkins+SVN+Maven自动化部署环境搭建

  2. 安装完成以后,会自动启动浏览器,跳转到Jenkins登录页面。第一次启动Jenkins,出于安全考虑,Jenkins会生产一个随机口令文件,表单中会给出管理员口令文件存放的位置,通过Windows+R,调出运行窗口,将存放口令的文件路径粘贴到输入框,点击回车,快速打开文件,将文件中的口令输入到表单中,点“Continue”继续;

    Jenkins+SVN+Maven自动化部署环境搭建

  3. 安装Jenkins官方建议的默认插件;

    Jenkins+SVN+Maven自动化部署环境搭建

  4. 创建第一个管理员用户,创建完成以后,就可以用这个用户登录到Jenkins系统中。

Jenkins+SVN+Maven自动化部署环境搭建

安装插件

下面介绍实际部署中所用到的几个插件,安装方法:系统管理->管理插件。

  • 安装Deploy to container Plugin(自动化部署插件)
  • 安装Maven Integration Plugin(Maven集成插件)
  • 安装Publish Over SSH Plugin(SSH远程发布插件)

注意:因插件安装以后,需要重启Jenkins才能够使用。所以在安装插件时,可以勾选安装完成后重启Jenkins。如果不小心忘记勾选,也没有关系,可以在浏览器网址端口后面输入/restart来重启Jenkins,其它的命令,可参考系统管理->Jenkins CLI。

Jenkins+SVN+Maven自动化部署环境搭建

系统配置

插件安装完成以后,我们需要对系统进行配置。

  1. 首先进行全局配置,系统管理->系统设置:

Jenkins Location配置

Jenkins URL项保持默认即可,填写系统管理员邮件地址。(注意:这个如果不填写的是发送不了邮件的,测试邮件发送时会报:“553 Mail from must equal authorized user”错误。)

Jenkins+SVN+Maven自动化部署环境搭建

邮件通知配置

填写“SMTP服务器”、“用户默认邮件后缀”,然后点“高级”,勾选“使用SMTP认证”,填写邮箱用户名、密码和SMTP端口,接着勾选“通过发送测试邮件测试配置”,填写接收邮件的邮箱,点击“测试”,出现“Email was successfully sent”表明邮件通知配置成功。

Jenkins+SVN+Maven自动化部署环境搭建

SSH remote hosts配置

SSH远程主机配置,主要用来通过SSH方式远程发布,在后面的章节会详细介绍。

Jenkins+SVN+Maven自动化部署环境搭建

Publish over SSH配置

主要是用来通过SSH方式远程发布,在后面的章节会详细介绍。

Jenkins+SVN+Maven自动化部署环境搭建

  1. 然后,进入系统设置->Global Tool Configuration:

SonarQube servers配置

Jenkins+SVN+Maven自动化部署环境搭建

Maven配置

配置Maven主要是配置Maven的settings.xml文件,Jenkins在构建Maven项目时需要依靠该配置文件来执行Maven,其配置如下:

Jenkins+SVN+Maven自动化部署环境搭建

JDK配置

Jenkins+SVN+Maven自动化部署环境搭建

SonarQube Scanner配置

Jenkins+SVN+Maven自动化部署环境搭建

新建项目

新建一个Maven项目

Jenkins+SVN+Maven自动化部署环境搭建

项目配置

###源码管理

Jenkins+SVN+Maven自动化部署环境搭建

构建触发器

Jenkins提供了6中构建触发器,分别是:

  1. build whenever a snapshot dependency is built ,当job依赖的快照版本被build时,执行本job;
  2. 触发远程构建 (例如,使用脚本);
  3. build after other projects are built 当本job依赖的job被build时,执行本job;
  4. build periodically 隔一段时间build一次,不管版本库代码是否发生变化,通常不会采用此种方式;
  5. GitHub hook trigger for GITScm polling 通过Github钩子触发;
  6. poll scm 隔一段时间比较一次源代码,如果发生变更,那么久build。否则,不进行build,通常采用这种方式。

Jenkins+SVN+Maven自动化部署环境搭建

构建(Build)

调用Maven “clean install”命令。

Jenkins+SVN+Maven自动化部署环境搭建

增加一个构建后步骤(自动部署)

因在Windows环境下部署,所以选择Execute Windows batch command。

Jenkins+SVN+Maven自动化部署环境搭建

自动部署的思路:设置全局变量(项目名称,构建新包路径,配置文件路径,Tomcat路径等)->关闭Tomcat->删除Tomcat中旧版本包->拷贝新包到Tomcat应用目录->启动Tomcat(解压包)->关闭Tomcat->替换配置文件->删除War包->启动Tomcat,自己写的脚本代码如下:

Jenkins+SVN+Maven自动化部署环境搭建

@echo off

rem 设置全局变量
set prj_name=estate
set package_path=D:\AutoDeployment\Package
set config_path=D:\AutoDeployment\config
set command_path=D:\AutoDeployment\command
set tomcat_home=D:\tomcat\apache-tomcat-7.0.59

set startup_command=%tomcat_home%\bin\startup.bat
set shutdown_command=%tomcat_home%\bin\shutdown.bat

rem 关闭tomcat
call %shutdown_command%

rem 暂停10s
ping -n 10 127.0.0.1

rem 删除旧包目录
rd /s /q %tomcat_home%\webapps\%prj_name%

rem 新包重命名
d:
cd D:\AutoDeployment\Package\estate
ren register-web.war %prj_name%.war

rem 拷贝新包到发布目录
copy %prj_name%.war %tomcat_home%\webapps

rem 启动tomcat

call %startup_command%

rem 暂停10s
ping -n 10 127.0.0.1

rem 关闭tomcat
call %shutdown_command%

rem 删除war包
rd /s /q %tomcat_home%\webapps\%prj_name%.war

rem 替换配置文件
copy %config_path%\%prj_name% %tomcat_home%\webapps\%prj_name%\WEB-INF\classes

rem 启动tomcat
call %startup_command%

rem 关闭窗口
exit

构建设置(邮件通知)

Jenkins+SVN+Maven自动化部署环境搭建

构建测试

点击“立即”构建,maven 打包成功,执行脚本无误以后,整个自动化部署就成功了。

Jenkins+SVN+Maven自动化部署环境搭建

Jenkins+SVN+Maven自动化部署环境搭建

结语

按照以上步骤,可以成功完成自动化部署环境搭建。网上很多教程,在“构建后步骤”这一步直接贴出Execute shell,且未说明是在什么操作系统环境下,注意直接拿来用在Windows环境下面是不行的。Jenkins软件帮助功能做的非常强大,在每一项配置后面,都会有一个帮助菜单,所以当你不确定该项如何填写时,这个菜单是最好的参考工具。后面我将会继续介绍通过SSH远程发布以及Jenkins与SonarQube(开源代码质量管理系统)集成,欢迎一起交流学习。


以上所述就是小编给大家介绍的《Jenkins+SVN+Maven自动化部署环境搭建》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Automate This

Automate This

Christopher Steiner / Portfolio / 2013-8-9 / USD 25.95

"The rousing story of the last gasp of human agency and how today's best and brightest minds are endeavoring to put an end to it." It used to be that to diagnose an illness, interpret legal docume......一起来看看 《Automate This》 这本书的介绍吧!

图片转BASE64编码
图片转BASE64编码

在线图片转Base64编码工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具

HSV CMYK 转换工具
HSV CMYK 转换工具

HSV CMYK互换工具