Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】

摘要:
前言由于公司今年有许多新的产品线,为了减少耦合,实现业务分离、重用,并提高内部开发效率,采用了基于服务组件和前端和后端分离的架构系统。与以前传统的单一应用程序架构相比,系统部署和配置更加复杂。为了及时、持续地向测试团队和质量控制团队频繁交付最新版本的软件以供审查,引入了持续集成工具Jenkins,以实现公司新产品的持续集成和自动部署。

前言

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

环境准备

安装Jenkins

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

    11

    Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】第2张

    Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】第3张

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

    22

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

    33

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

44

安装插件

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

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

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

Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】第7张

系统配置

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

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

Jenkins Location配置

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

55

邮件通知配置

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

66

SSH remote hosts配置

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

88

Publish over SSH配置

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

99

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

SonarQube servers配置

10

Maven配置

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

11

JDK配置

12

SonarQube Scanner配置

13

新建项目

新建一个Maven项目

14

项目配置

###源码管理

15

构建触发器

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,通常采用这种方式。

16

构建(Build)

调用Maven “clean install”命令。

17

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

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

Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】第20张

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

Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】第21张

@echo off

rem 设置全局变量
set prj_name=estate
set package_path=D:AutoDeploymentPackage
set config_path=D:AutoDeploymentconfig
set command_path=D:AutoDeploymentcommand
set tomcat_home=D:	omcatapache-tomcat-7.0.59

set startup_command=%tomcat_home%binstartup.bat
set shutdown_command=%tomcat_home%binshutdown.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:AutoDeploymentPackageestate
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-INFclasses

rem 启动tomcat
call %startup_command%

rem 关闭窗口
exit

构建设置(邮件通知)

19

构建测试

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

Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】第23张

Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】第24张

结语

按照以上步骤,可以成功完成自动化部署环境搭建。网上很多教程,在“构建后步骤”这一步直接贴出Execute shell,且未说明是在什么操作系统环境下,注意直接拿来用在Windows环境下面是不行的。Jenkins软件帮助功能做的非常强大,在每一项配置后面,都会有一个帮助菜单,所以当你不确定该项如何填写时,这个菜单是最好的参考工具。

https://my.oschina.net/lsjcoder/blog/1573648

免责声明:文章转载自《Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇mongodb研究(mongodb 内存数据库)wpf使用devexpress RibbonControl实现导航窗体下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Docker 打包 部署

(1).此刻我假设你已经把你的 通过 maven 自动化构建的java demo 打包了,就是说生成了以 jar 或者 war 结尾的包文件了。 (2).假设你已经成功安装 docker 。  如果上面的俩个假设为True的话,那您可以接着往下看。 Docker相关术语: (1).镜像、容器、仓库 Docker的特点: (1).关键字:集装箱、标准、隔离。...

interlliJ idea 不识别文件类型的解决方式

idea 支持非常多种文件类型。然而总有想不到。 近期开发jenkins 插件,jenkins 插件的页面开发大多用jelly 如何让idea识别jelly呢? ctrl+alt+s 快捷键打开配置页面。 搜索file type, 加入一个file类型,此处文件名称写jelly file 然后加入一个patterns。设置为*.jelly。 OK了 就像...

(转)使用CruiseControl+SVN+ANT实现持续集成之二

1. 环境搭建1.1. 下载及目录介绍 从官方站点http://cruisecontrol.sourceforge.net/download.html下载一份最新的 CC 压缩包,最新的版本号为2.8.4 下载了cruisecontrol-bin-2.8.4.zip 直接解压到E盘下,文件结构如下图: apache-ant-1.7.0:CC中使用...

Thinkphp6笔记二:开启多应用模式

开启多应用模式1.首先刪除app目录下所有其他文件2.安装多应用模式扩展: composer require topthink/think-multi-app3.创建三大应用index(前端),admin(后台),common(公共应用)命令:php think build index命令:php think build admin命令:php think...

【Hadoop系列】linux SSH原理解析

本文中斜体加粗代表shell指令,操作环境 CentOS6.5 linux root免密码登录链接:【Hadoop系列】linux下 root用户免密码登录远程主机 ssh。 linux 非root用户免密码登录:XXXXXXX(暂未写好) Linux下,使用ssh协议登录远程计算机。让我们先来了解下什么是SSH。 一、什么是SSH?简单说,SSH是一种网...

Niagara基于javascript的控件开发

niagara控件开发widget 一、参考资料 Tridium_N4_开发环境设置_JavaScript开发环境篇.pdfTridium_N4_开发环境设置_基础开发环境篇.pdfTridiumNiagara4控件开发参考手册.pdf 以上的第一篇和第二篇是杨超大神写的文档,是基本的参考资料,搭建环境必须阅读。但是在实际的开发中有些许不相同,...