千锋教育-做有情怀、有良心、有品质的IT职业教育机构

400-811-9990
当前位置:首页  >  技术文章  >  正文

Jenkins持续集成详细教程

时间:2022-06-02 18:46     来源:千锋教育 作者:qyf

  一:什么是Jeckins?

  Jenkins是一个可扩展的持续集成引擎。

  持续集成,就是通常所说的CI(Continues Integration),可以说是现代软件技术开发的基础。

  持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也意味着每天可能会发生多次集成。

  每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。

  Jenkins作用:

  1、持续、自动地构建、测试软件项目。

  2、监控一些定时执行的任务。

  Jenkins的目的:

  Jenkins 主要是监控软件开发流程,快速显示问题。所以能保证开发人员以及相关人员省时省力提高开发效率。

  CI系统在整个开发过程中的主要作用是控制:当系统在代码存储库中探测到修改时,它将运行构建的任务委托给构建过程本身。如果构建失败了,那么CI系统将通知相关人员,然后继续监视存储库。它的角色看起来是被动的;但它确能快速反映问题

  二:Jenkins架构

图片72


  在上面这个分布式的构建环境中,Jenkins master主要负责如下:

  接收构建触发(比如,一个提交到GitHub后)

  发送通知(比如,在构建失败后,发送email或者HipChat消息)

  处理HTTP请求(和客户端进行交互)

  管理构建环境(在slave编排工作执行)

  由于master和slave负责不相同的,所以他们请求不同的环境。

  Master: 往往是专用的主机,项目从小到大需要内存200 MB--- 70 GB.

  Slave: 没有特别的要求,它应该能够执行单一的构建。比如:这个项目比较大的话,请求100GB的内存,那么该slave主机应该满足项目的要求。

  三:Jenkins的安装和部署

  jenkins官网下载地址:https://jenkins.io/download/ 目前版本:2.277.4

  jenkins项目有两条发布线,分别是LTS长期支持版(或稳定版)和每周更新版(最新版)。建议选择LTS长期支持版,下载通用java项目war包。

  下载jdk1.8以上版本并安装,安装后配置jdk的环境变量。

  在dos命令行运行命令解压war包:java -jar jenkins.war (默认情况下端口是8080.如果要使用其他端口启动,可以通过命令行”java –jar Jenkins.war --httpPort=80”的方式修改)

  运行命令后jenkins.war会自动在C盘目录下生成一个jenkins的文件夹。C盘下的这个文件夹可独立运行。

  在浏览器中访问jenkins项目:http://localhost:8080/jenkins 出现解锁 Jenkins界面,说明jenkins项目搭建完成,这里需要输入管理员密码。

  管理员密码在:C:\jenkins\secrets\initialAdminPassword 打开此文件获得密码并输入密码,点击”继续”

  点击:【选择插件来安装】按钮,出现如下默认插件安装界面。

  这个页面会默认选中安装一些插件,直接点击”安装”按钮,安装所有推荐的插件。

  等待所有插件安装完成(耐心等待1-2个小时)。安装插件的时候,会有一些插件安装失败(如上图的X),这些插件的安装是有前置条件的,等安装结束后,按右下角“重试”,继续安装,之前失败的插件就都能安装了。安装完成后,点击“继续”按钮,

  输入用户名:admin,密码:123456.确认密码:123456.全名:admin,电子邮件地址后点“保存并完成”按钮

  点击“保存并完成”出现下图表示jenkins已经配置完成。点击[开始使用jenkins]登录。

  四:jenkins持续集成

  1:全局配置

  成功初始化后接下来需要做一些相应的全局的工具配置,点击首页左边菜单的Manage Jenkins,然后再点击Global Tool Configuration选项。

图片73

  在以下的页面中设置好Maven、JDK、Git的相关配置信息。需要注意的是,在JDK配置中取消勾选Install automatically,也就是不自动下载jdk,而是手动指定JAVA_HOME的路径。

图片74

  在下面Maven安装的选项中指定Maven的安装路径

图片75

  2. 创建任务

  点击首页的新建Item或者创建一个新任务。

图片88

  在跳转的页面中输入任务名称(这里创建一个helloworld任务用于演示)。然后选择自由风格的的任务,最后点解确定按钮。

图片76

  3. 配置任务

  在创建好任务之后,会来到任务的配置页面,下面将演示如何对任务进行一些常规的配置。

  General配置

图片77

  描述:填写构建的描述信息。

  Discard old builds:勾选,表示丢弃就的构建,并填写丢弃策略的保持构建天数和保持构建的最大个数。

  GitHub项目:勾选,填写github的项目地址。

  源码管理

图片78

  源码管理可选择git或svn。由于案例是托管在github上,因此这里选择Git,需要注意的是,如果使用ssh加密通信,需要在本地使用ssh-keygen生成秘钥对,然后将私钥配置到jenkins,把公钥配置到github上。

  点击添加按钮

图片79

  在弹出的子窗口中,类型选择SSH Username with private key,然后填写Username(随意),勾选Enter directly,在Key的文本域中加入私有key的秘钥串,然后点击最下面的添加。

图片80

  构建环境

  构建环境中勾选Delete workspace before build starts(开始构建之前删除工作空间)

图片81

  构建

  在构建这一项中选择构建步骤,由于案例是一个Maven项目,因此这里选择使用Maven来进行构建。点击添加构建步骤,在下拉菜单中选择Invoke top-level Maven targets。

图片82

  然后选择maven版本,目标出填写Maven声明周期命令,这里设置为执行清理后进行打包,并忽略单元测试。

图片83

  自动部署

  前面的配置已经基本完成了项目的自动构建,通常在构建完之后需要将项目进行部署,那么同样可以让Jenkins来完成项目的自动部署。在自动部署的时候,应先停止原有的应用进程然后重新启动,这些操作可以使用shell脚本来完成。

  在构建的选项中再次点击增加构建步骤,选择Execute shell

图片84

  在命令中添加sheel脚本

  # #!/bin/bash表示使用系统的bash

  #!/bin/bash

  echo"Restart SpringBootApplication..."

  # 获取demo.jar的后台进程id,并赋值给变量pid

  # ps用于显示进程信息的命令,-ef参数表示显示所有进程和全部格式

  # “|”是一个管道符号,表示ps和grep命令同时执行

  # grep是linux的一个文本搜索工具

  # grep demo.jar表示查找内容包含demo.jar的进程信息

  # grep -v grep表示反向查找,查找不包含grep的内容的进程信息(也就是进行一次过滤)

  # awk是一个强大的文本分析工具,分析并生成报告。'{print $2}'表示打印出第二个字段

  pid=`ps -ef | grep demo.jar | grep -v grep | awk '{print $2}'`

  # 如果pid不为“”,则kill掉该进程

  if[-n"$pid"]

  then

  kill-9$pid

  fi

  # Jenkins默认会在Build结束后Kill掉所有的衍生进程,

  # BUILD_ID=DONTKILLME就是防止jenkins杀掉衍生的子进程

  BUILD_ID=DONTKILLME

  # 后台启动demo.jar,2>&1表示将标准出错也输出到springboot.log文件中,最后一个&表示该命令在后台执行

  nohup java-jar/root/.jenkins/workspace/helloworld/target/demo.jar > /root/springboot.log2>&1 &

  最后点击应用并保存,此时任务的配置就基本完成。

  4. 执行任务

  回到首页,在任务列表中可以看到刚配置好的任务,点击任务名称旁边的下拉箭头,选择Build Now开始执行任务。

图片85

  此时在左下角的构建执行状态中会有一个helloworld任务执行的进度条。

图片86

  旁边的#1表示第几次构建,如果执行完后再次点击Build Now,那么又会产生一条新的构建记录为#2.可以点击#1进去查控制台输出任务执行日志。

图片87

  最后,当任务正确执行完后,我们就可以正常访问项目。以后每当我们有新的版本提交到github,那么只需要在任务列表中点击Build Now来执行构建任务。那么jenkins会自动从github上拉取最新的版本,接着使用Maven将项目进行编译打包等操作,然后通过shell脚本自动部署项目。

  更多关于软件测试培训的问题,欢迎咨询千锋教育在线强师,如果想要了解我们的师资、课程、项目实操的话可以点击咨询课程顾问,获取试听资格来试听我们的课程,在线零距离接触千锋教育大咖强师,让你轻松从入门到精通。

相关文章

  • 北京总部地址:北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术学院广场服务楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 深圳校区地址:深圳市宝安区宝安大道5010号西部硅谷B座A区6层A605/B座C区1层108
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 上海校区地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 广州校区地址:广州市白云区永平街永泰学山塘学山文化创意谷A1栋六楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 郑州二七区校区地址:郑州市二七区航海中路60号海为科技园C区10层
    郑州高新区校区地址:郑州市高新区金梭路与银杏路交叉口教育科技产业园南门D座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 大连校区地址:辽宁省大连市高新园区爱贤街10号大连设计城A座901
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 武汉金融港校区地址:武汉市东新区光谷大道77号金融港B18栋三楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 成都校区地址:成都市高新区肖家河沿街138号肖家河大厦三楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 西安校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 杭州旺田校区:浙江省杭州市江干区九堡旺田书画城A座4层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 青岛校区地址:青岛市市北区龙城路31号卓越世纪中心4号楼5层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 重庆校区地址:重庆市九龙坡区科园一路3号渝高大厦9楼
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 长沙校区地址:湖南省长沙市岳麓区麓谷企业广场A2栋三单元306号
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 哈尔滨校区地址:哈尔滨市松北区世泽路689号 科技创新城4号楼1101
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 南京校区地址:南京市建邺区应天大街780号弘辉产业园1栋2层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 太原校区地址:太原市小店区长治路230号能源互联网大厦6层
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 沈阳校区地址:辽宁省沈阳市浑南区世纪路16号东大软件园B园B1座A201
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 合肥校区地址:合肥市包河区徽州大道396号东方广场B座12A
    咨询电话:400-811-9990
    面授课程:HTML5大前端培训、JavaEE+分布式开发培训、Python全栈+人工智能培训、全链路UI/UE设计培训、云计算培训、全栈软件测试培训、大数据+人工智能培训、智能物联网+嵌入式培训、Unity游戏开发培训、Go语言开发培训、PHP全栈+服务器集群培训、网络安全培训、互联网营销培训、好程序员
    认证课程:软考、、PMP认证、红帽RHCE认证
  • 千锋教育服务号

    关注千锋学习站小程序
    随时随地免费学习课程

  • 千锋教育移动站

    扫一扫快速进入
    千锋移动端页面

  • 千锋互联服务号

    扫码匿名提建议
    直达CEO信箱