# 文档编写中 。。。。
目录
[TOC]
## Jenkins是啥
目前最流行的一款持续集成及自动化部署工具。更够持续部署、持续集成CI、持续交付
*****
## Jenkins自我介绍
**构建伟大,无所不能**
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。
官方文档 [https://jenkins.io/zh/doc/pipeline/tour/getting-started/](https://jenkins.io/zh/doc/pipeline/tour/getting-started/)
*****
### 带来的好处
1. 降低风险
2. 减少重复过程
3. 任何时间、任何地点生成可部署的软件
4. 增强项目的可见性
5. 建立团队对开发产品的信心
6. 一个人一次配置好,所有人都不需要配置该项目和pom,只需要提交代码即可自动部署
*****
### 自动化部署与原先手动部署对比
“自动化”的主要体现在向git提交新的代码后,应用服务器自动部署,用户或测试人员使用的马上就是最新的应用程序
#### 手动部署
1. **开发人员**推代码到GitHub
3. **开发人员**手动检出项目源码
4. **开发人员**手动打包
5. **开发人员**登录服务器
6. **开发人员**关闭运行项目所在tomcat
8. **开发人员**清空tomcat工作空间文件
9. **开发人员**上传war包到tomcat工作空间文件
10. **开发人员**开启项目所在tomcat
11. 部署完成
#### 自动部署
ps:Jenkins服务部署在项目所在服务器上
1. **开发人员**推代码到GitHub
2. 推代码动作自动触发github钩子程序
3. 钩子程序通过Jenkins服务提供的URL通知Jenkins开始自动构建
4. Jenkins调用Git插件
1. 检出项目源码
5. Jenkins调用Maven插件
1. 打war包
6. Jenkins调用Deploy to container (部署到容器)插件
1. 关闭运行项目所在tomcat
2. 清空tomcat工作空间文件
3. 上传war包到tomcat工作空间文件
4. 开启项目所在tomcat
7. 部署完成