一、Jenkins部署概述
### --- jenkins
~~~ Jenkins是帮我们将代码进行统一的编译打包、还可以放到tomcat容器中进行发布。
~~~ 意思是我们通过配置,将以前:编译、打包、上传、部署到Tomcat中的过程交由Jenkins,
~~~ Jenkins通过给定的代码地址URL,将代码拉取到其“宿主服务器”(Jenkins的安装位置),
~~~ 进行编译、打包和发布到web容器中。
2、Jenkins概述
### --- Jenkins概述
~~~ 是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),
~~~ 主要用于持续、自动的构建/测试软件项目、监控一些定时执行的任务。
~~~ Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。
~~~ jenkins通常与版本管理工具(SCM)、构建工具结合使用;常用的版本控制工具有SVN、GIT。
~~~ jenkins构建工具有Maven、Ant、Gradle。
二、CI/CD
### --- CI/CD
~~~ 持续集成/持续发布
~~~ 开发(git) -->git主库-->jenkins(git+jdk+tomcat+maven打包+测试)
~~~ -->发布到tomcat服务器
### --- CI:英文全称:Continuous Integration
~~~ # 中文全称:持续集成工具
~~~ 持续集成是一种软件开发实践。
~~~ 在持续集成中,团队成员频繁集成他们的工作成果,一般每人每天至少集成一次,也可以多次。
~~~ 每次集成会经过自动构建(包括自动测试)的检验,以尽快发现集成错误。
### --- SCM
~~~ 英文全称:Source Control Management (Software Version Control)
~~~ 中文全称:源码控制管理软件 版本控制
三、Jenkins说明
### --- Jenkins目标
~~~ 是监控软件开发流程
~~~ 快速显示问题
~~~ 提高开发效率
~~~ 过程控制
### --- Jenkins特性
~~~ 易于安装:不需要安装、不需要数据库,只需通过java -jar jenkins.war或部署到一个servlet容器中
~~~ 易于配置:所有的配置都可能通过jenkins提供的web界面完成,当然如果你喜欢,也可以通过手动修改xml文件进行配置
~~~ 测试报告:生成JUnit或TestNG的测试报告.集成RSS/E-mail通过RSS发布构建结果或当构建完成时通过e-mail通知。
~~~ 文件识别:jenkins能跟踪每次构建生成哪些jar包以及使用哪个版本的jar包
~~~ 分布式构建:支持Jenkins能够让多台计算机一起构建/测试。
~~~ 插件支持:jenkins可以通过第三方插件扩展,也可以根据团队需要开发插件
### --- 任务(Job)和构建(build)
~~~ 任务:(Job)是Jenkins的一个执行计划,是一系列操作的集合。
~~~ 构建:是Jenkins的任务的一次运行。
四、Jenkins工作流程
### --- Jenkins架构图
~~~ 开发者检入代码到源代码仓库。
~~~ CI系统会为每一个项目创建了一个单独的工作区。当预设或请求一次新的构建时,
~~~ 它将把源代码仓库的源码存放到对应的工作区。
~~~ CI系统会在对应的工作区内执行构建过程。
~~~ (配置如果存在)构建完成后,CI系统会在一个新的构件中执行定义的一套测试。
~~~ 完成后触发通知(Email,RSS等等)给相关的当事人。
~~~ (配置如果存在)如果构建成功,
~~~ 这个构件会被打包并转移到一个部署目标(如应用服务器)或存储为软件仓库中的一个新版本。
~~~ 软件仓库可以是CI系统的一部分,也可以是一个外部的仓库,
~~~ 诸如一个文件服务器或者像Java.net、 SourceForge之类的网站。
~~~ CI系统通常会根据请求发起相应的操作,诸如即时构建、生成报告,
~~~ 或者检索一些构建好的构件。
~~~ Jenkins就是这么一个CI系统。之前叫做Hudson。