持续集成工具 Jenkins
1 从装修厨房看项目开发
1.1 持续部署【CD】
- 问题:一个环节有问题,其他环节跟着返工
- 解决方案:任何安装完成及时测试,确保可以正常工作
1.2 持续集成【CI】
- 问题:各个小组分别负责不同的模块,模块的独立测试能够通过,但是集成到一起就会出现很多的问题
- 解决方案:经常性、频繁的把所有模块集成在一起进行测试,有问题尽早的发现
1.3 持续交付
- 问题:项目的各个升级版本之间间隔太长,无法准确的
- 解决方案:用 小版本 不断进行 快速迭代,不断收集用户反馈信息,用最快的速度改进优化
1.4 总体目标
- 好处一:降低风险
- 一天中进行多次的集成,并做了相应的测试,这样有利于检查缺陷
- 了解软件的健康状况,减少假定
- 好处二:减少重复过程
- 编译、测试、打包、部署等固定操作必须要做,无法省略任何一个环节
- 缺陷没有被及时发现,有可能导致后续的代码的方向是错误的,修复问题需要重新编写所有代码
- 好处三:任何时间、任何地点生成可部署的软件
- 可以在任何时间发布可以部署的软件
- 站在客户的角度考虑:可以部署的软件是最实际的资产,利用持续集成,你可以对原代码进行一些小改动
- 好处四:增强项目的可见性
- 用户可以更好的看到我们的产品
- 好处五:建立团队对开发产品的信心
- 了解每一次构建的结果,他们知道自己对软件的改动造成了哪些影响,结果怎么样
2 持续集成工具
2.1 Jenkins
目前最流行的一款持续集成及自动化部署工具
2.2 技术组合
可以整合 GitHub 或 Subversion
3 Java EE 项目部署方式
3.1 手动部署
每次测试人员都需要 down 下来全部的包,进行部署测试
3.2 自动化部署
- 开发人员将本地代码推送至 GitLab 代码库
- 通知 Jenkins 来进行调用
- Jenkins 通过 Git 来获取源码,通过 Maven 插件进行打包
- 最后调用 Deploy to web container 插件来进行部署