持续集成及自动化部署之Jenkins
持续集成及自动化部署工具
持续部署[CD]
**仅仅单元测试还不够,各个模块必须能够在服务器上运行; **关注点在于项目功能(各个模块)部署至服务器后可以运行,为测试环节或最终用户使用做好准备;
持续集成[CI]
**经常性、频繁的把所有模块集成在一起进行测试[集成测试],有问题尽早发现; **关注点在于尽早发现项目整体运行问题,尽早解决;
持续交付[CD]
**用小版本不断进行快速迭代,不断收集用户反馈信息,用最快的速度改进优化;[大版本/release] **关注点在于研发团队的最新代码能够尽快让最终用户体验到;
总体目标
**好处: ***1.降低风险; ***2.减少重复过程[如编译、测试、打包等固定流程] - 自动化流程; ***3.任何时间、任何地点生成 "可部署的软件"; ***4.增强项目的可见性<1>有效决策;<2>注意到趋势; ***5.建立团队对开发产品的信心;
Jenkins<open> | Hudson<Oracle>
** 前提知识:Linux基本命令|vim编辑器|Maven项目构建管理|Github|SVN ** 可整合Github或Subversion ** 人工部署 ** 自动化部署 *** 搭建持续集成环境:可以把构建、部署自动化,减轻工作量 > deploy web container插件 + > *** dev > git repository > 钩子程序 > jenkins > [GIT插件]> code >打包> war包>部署>Tomcat server > [Maven插件] > + >
Jenkins:
### Jenkins + SVN: ** 要点: *** 创建虚拟机安装Linux系统:vm1-svn,vm2-jenkins,vm3-application(tomcat); *** 版本控制子系统(SVN): - subversion服务器; - 项目对应版本库; - 版本库中钩子程序; -- linux curl命令:-X:指定请求方式;-v:显示响应结果;-u:携带用户名/密码;-H:携带请求消息头信息; *** 持续集成子系统 - JDK; - Tomcat; - Maven; - Jenkins: -- 主体程序; -- svn插件; -- maven插件; -- Deploy to Web Container插件; ***应用发布子系统 - JDK; - Tomcat; ### Jenkins + Github: **要点: *** Jenkins需要部署到外网,因Github无法无法访问内网地址; - 安装Jenkins; *** Jenkins所在主机需要安装GIT,git从GitHub上clone代码; - echo "export PATH=$PATH:/usr/local/git/bin" >> /etc/bashrc # >>追加 - source /etc/bashrc # 使文件生效 *** Jenkins需要指定git程序位置,和指定jdk、maven程序位置类似; - 配置git; *** 在GitHub上使用每个repository的webhook方式远程触发Jenkins构建; - GitHub配置webhook[repository>settings>webhook>add webhook>远程触发的身份验证令牌] *** 在Jenkins内关闭“防止跨站请求伪造”; - 全局安全配置 > CSRF Protection > 取消勾选;
相关推荐
lrcoop 2020-06-13
nanbiebao 2019-12-20
programmeryu 2020-09-24
lrcoop 2020-08-15
jingzhaopan 2020-07-08
longzhanpeng 2020-06-08
longzhanpeng 2020-06-21
LiHansiyuan 2020-06-14
sayhaha 2020-08-10
无风的雨 2020-07-08
贤时间 2020-07-06
jingzhaopan 2020-06-04
nebulali 2020-05-27
Javawucao 2020-05-20
liusaisoso 2020-05-19
isHooky 2020-05-15
CloasGao 2020-05-15