Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】
前言
因今年公司新产品线较多,为了降低耦合,达到业务分离、重用,提高内部开发效率的目的,采用了基于服务组件、前后端分离的架构体系。与之前传统单应用架构相比,系统部署、配置更加复杂,为了能够频繁地将软件的最新版本,及时、持续地交付给测试团队及质量控制团队,以供评审,所以引入持续集成工具Jenkins,从而实现公司新产品持续集成,自动化部署。
环境准备
- 操作系统:Windows10
- Java环境:下载 jdk-1.8.0-131-X64.zip,配置Java环境变量(参考:http://jingyan.baidu.com/article/02027811629b941bcc9ce521.html)
- Maven环境:下载apache-maven-3.5.2-bin.zip,配置Maven环境变量(参考:http://wiki.jikexueyuan.com/project/maven/environment-setup.html)
- Tomcat环境:下载apache-tomcat-8.5.20-windows-x64.zip,配置Tomcat环境变量(参考:http://jingyan.baidu.com/article/8065f87fcc0f182330249841.html)
- Jenkins环境:下载Jenkins2.73.2 for Windows
安装Jenkins
运行下载好的Jenkins安装包jenkins.msi,选择安装路径,点击”安装“,等待安装完成;
安装完成以后,会自动启动浏览器,跳转到Jenkins登录页面。第一次启动Jenkins,出于安全考虑,Jenkins会生产一个随机口令文件,表单中会给出管理员口令文件存放的位置,通过Windows+R,调出运行窗口,将存放口令的文件路径粘贴到输入框,点击回车,快速打开文件,将文件中的口令输入到表单中,点“Continue”继续;
安装Jenkins官方建议的默认插件;
创建第一个管理员用户,创建完成以后,就可以用这个用户登录到Jenkins系统中。
安装插件
下面介绍实际部署中所用到的几个插件,安装方法:系统管理->管理插件。
- 安装Deploy to container Plugin(自动化部署插件)
- 安装Maven Integration Plugin(Maven集成插件)
- 安装Publish Over SSH Plugin(SSH远程发布插件)
注意:因插件安装以后,需要重启Jenkins才能够使用。所以在安装插件时,可以勾选安装完成后重启Jenkins。如果不小心忘记勾选,也没有关系,可以在浏览器网址端口后面输入/restart来重启Jenkins,其它的命令,可参考系统管理->Jenkins CLI。
系统配置
插件安装完成以后,我们需要对系统进行配置。
- 首先进行全局配置,系统管理->系统设置:
Jenkins Location配置
Jenkins URL项保持默认即可,填写系统管理员邮件地址。(注意:这个如果不填写的是发送不了邮件的,测试邮件发送时会报:“553 Mail from must equal authorized user”错误。)
邮件通知配置
填写“SMTP服务器”、“用户默认邮件后缀”,然后点“高级”,勾选“使用SMTP认证”,填写邮箱用户名、密码和SMTP端口,接着勾选“通过发送测试邮件测试配置”,填写接收邮件的邮箱,点击“测试”,出现“Email was successfully sent”表明邮件通知配置成功。
SSH remote hosts配置
SSH远程主机配置,主要用来通过SSH方式远程发布,在后面的章节会详细介绍。
Publish over SSH配置
主要是用来通过SSH方式远程发布,在后面的章节会详细介绍。
- 然后,进入系统设置->Global Tool Configuration:
SonarQube servers配置
Maven配置
配置Maven主要是配置Maven的settings.xml文件,Jenkins在构建Maven项目时需要依靠该配置文件来执行Maven,其配置如下:
JDK配置
SonarQube Scanner配置
新建项目
新建一个Maven项目
项目配置
###源码管理
构建触发器
Jenkins提供了6中构建触发器,分别是:
- build whenever a snapshot dependency is built ,当job依赖的快照版本被build时,执行本job;
- 触发远程构建 (例如,使用脚本);
- build after other projects are built 当本job依赖的job被build时,执行本job;
- build periodically 隔一段时间build一次,不管版本库代码是否发生变化,通常不会采用此种方式;
- GitHub hook trigger for GITScm polling 通过Github钩子触发;
- poll scm 隔一段时间比较一次源代码,如果发生变更,那么久build。否则,不进行build,通常采用这种方式。
构建(Build)
调用Maven “clean install”命令。
增加一个构建后步骤(自动部署)
因在Windows环境下部署,所以选择Execute Windows batch command。
自动部署的思路:设置全局变量(项目名称,构建新包路径,配置文件路径,Tomcat路径等)->关闭Tomcat->删除Tomcat中旧版本包->拷贝新包到Tomcat应用目录->启动Tomcat(解压包)->关闭Tomcat->替换配置文件->删除War包->启动Tomcat,自己写的脚本代码如下:
@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
构建设置(邮件通知)
构建测试
点击“立即”构建,maven 打包成功,执行脚本无误以后,整个自动化部署就成功了。
结语
按照以上步骤,可以成功完成自动化部署环境搭建。网上很多教程,在“构建后步骤”这一步直接贴出Execute shell,且未说明是在什么操作系统环境下,注意直接拿来用在Windows环境下面是不行的。Jenkins软件帮助功能做的非常强大,在每一项配置后面,都会有一个帮助菜单,所以当你不确定该项如何填写时,这个菜单是最好的参考工具。
https://my.oschina.net/lsjcoder/blog/1573648
Windows版Jenkins+SVN+Maven自动化部署环境搭建【转】的更多相关文章
- jenkins+svn+gradle自动化部署笔记
自己虚拟机jekins配置:(jenkins+svn+gradle)自动化部署,1.linux配置好jdk,解压tomcat,将 jenkins.war翻到webapps目录下.2.系统管理-管理用户 ...
- Jenkins+svn+maven自动部署到tomcat
jenkins所在主机配置好,jdk,maven,Tomcat 1.配置maven,jdk环境 1) 进入配置界面--->[系统管理]--->[Global Tool Configurat ...
- Jenkins + Jmeter +Ant自动化集成环境搭建(一)
所需工具 一.jmeter 工具下载 https://jmeter.apache.org/ 配置环境JDK等及各种插件可以看小七之前的教程 二.Ant安装(http://ant.apache.org ...
- 浅谈.net jenkins svn下自动化集成环境安装 搭建 配置
本人做.net研发已有3年多了,之前一直偏向于技术研究,自己学了很多技术,现在突然发现学了那么多技术有什么用呢?真正用到的并不多. 现在?算是一只小鸟吧,自嘲下.....毕竟我是90后,很多领导对于9 ...
- ubuntu21.10搭建jenkins和gitlab自动化部署环境
镜像下载.域名解析.时间同步请点击阿里云开源镜像站 前置环境: vmware pro 16 + ubuntu21.10 安装gitlab 搭建ssh远程 打开终端 sudo apt-get insta ...
- Jenkins+Jmeter+Ant自动化集成环境搭建
1.搭建环境,安装以下工具 JDK:jdk1.7.0_79 Ant:apache-ant-1.9.7 Jmeter: apache-jmeter-3.0 Jenkins: jenkins-1.651. ...
- 从零搭建docker+jenkins 自动化部署环境
从零搭建docker+jenkins+node.js自动化部署环境 本次案例基于CentOS 7系统 适合有一定docker使用经验的人阅读 适合有一定linux命令使用经验的人阅读 1.docker ...
- Linux下的Jenkins+Tomcat+Maven+Git+Shell环境的搭建使用(jenkins自动化部署)【转】
jenkins自动化部署 目标:jenkins上点构建(也可以自动检查代码变化自动构建)>>>项目部署完成. 一.安装jenkins 1.下载jenkins 这里我选择的是war包安 ...
- Jenkins+SVN+Maven+shell 自动化部署实践
JAVA环境中利用Jenkins+svn+maven进行自动化部署实践 一. 前言2 1.介绍jenkins2 1.本地项目打包2 2.通过secureCRT工具,手动传输到服务器2 3.然后 ...
随机推荐
- html+css+jQuery+JavaScript实现tab自动切换功能
tab1.html内容 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> & ...
- WebService中方法的重载
阅读目录 一:WebService中的方法是否允许重载? 二:为什么WebService中不支持方法的重载? 三:如何解决WebService中方法的重载? 一:WebService中的方法是否允许重 ...
- s3c2440代码重定位和段的引入——学以致用,综合Makefile的锻炼
对于2440而言,nand启动,nand的前4k内容由硬件复制到sram. nor flash,可以像内存一样读,但是不能像内存一样写,执行写操作需要特殊的操作. 程序中包含有需要写的全局或者静态变量 ...
- 秒杀怎么样才可以防止超卖?基于mysql的事务和锁实现
Reference: http://blog.ruaby.com/?p=256 并发事务处理带来的问题? 相对于串行处理来说,并发事务处理能大大增加数据库资源的利用率,提高数据库系统的事务吞吐量,从 ...
- 使用jquery的$.ajax向服务端传递中文,避免乱码的解决办法!
在js里,对中文使用下面的方法 encodeURIComponent(var) 函数 就ok了!
- git拉取远程分支
查看本地所有分支列表: git branch -a 查看远程所有分支列表: git branch -r 拉取远程分支(使用该方式会在本地新建分支x,但是不会自动切换到该本地分支x,需要手动checko ...
- # Writing your first Django app--part 3 about view
添加更多的view 写actually有用的view 使用模版来设计view 使用模版设计view的捷径:render() 抛出异常404 抛出异常404-快捷方法: get_object_or_40 ...
- ElasticSearch的安装、使用、踩坑
最近博客写的少了. 本篇介绍在安装ElasticSearch和head插件的过程中遇到的小问题,和一些日常使用的操作(简单搜索语法.分片管理). ElasticSearch 它是一个实时分布式搜索和分 ...
- 通过shell脚本来rerun一个oozie调度失败的job,从而可以跳过执行失败的节点
标题很长:通过shell脚本来rerun一个oozie调度失败的job,从而可以跳过执行失败的节点 不过目前从oozie调度测试的例子来看,oozie本身的retry好像并没有参数可以控制跳过失败的节 ...
- 在VMware中为CentOS配置静态ip并可访问网络
在VMware中为CentOS配置静态ip并可访问网络-windows下的VMware 首先确保虚拟网卡(VMware Network Adapter VMnet8)是开启的,然后在windows的 ...