Jenkins基础教程

目录

  • 第一章、快速了解Jenkins
    • 1.1)Jenkins中一些概念介绍
    • 1.2)Jenkins和maven用途上的区别
    • 1.3)为什么使用Jenkins
    • 1.4)学习过程中的疑问
  • 第二章、安装Jenkins
    • 2.1)安装之前的准备
    • 2.2)Windows中Jenkins下载安装教程
    • 2.3)Jenkins安装插件,修改密码和汉化
  • 第三章、Jenkins配置
    • 3.1)配置
    • 3.2)创建Jenkins任务关联Git项目
    • 3.3)构建远程触发器
    • 3.4)构建后操作
    • 3.5)尝试手动构建
    • 3.6)GitHub服务器配置
  • 第四章、参考文章

友情提醒:

先看文章目录,大致了解文章知识点结构,点击文章目录可直接跳转到文章指定位置。有用记得关注

第一章、快速了解Jenkins

1.1)Jenkins中一些概念介绍

① Jenkins是什么?
Jenkins是一个强大的持续集成(CI)工具,主要用于持续、自动的构建/测试软件项目、监控外部任务的运行。它通常与版本管理工具(如Git、Maven、Ant、Gradle)结合使用,也可以与构建工具结合使用。可在Tomcat等流行的servlet容器中运行,也可独立运行。

②组件概念:在Java中,组件主要通过类、接口和包来实现。这些组件是用于构建复杂的应用程序和软件系统的基本模块,能够提高代码的可重用性,降低开发的复杂度。

③集成的概念:Jenkins的集成是指将不同的软件组件、模块或服务通过Jenkins这个持续集成工具集中在一起,产生联系,使不同的软件组件或模块能够相互协作,从而构成一个完整的软件系统。

④CI:持续集成的概念,实现自动化构建、自动化测试、发布部署等功能的过程。核心措施是,代码集成到主干之前,必须通过自动化测试。只要有一个测试用例失败,就不能集成。持续集成并不能消除Bug,而是让它们非常容易发现和改正。

⑤CD:(Continuous Delivery持续交付/Continuous Deployment持续部署)
持续交付指的是频繁地将软件的新版本交付给质量团队或者用户,以供评审。如果评审通过,代码就进入生产阶段。

持续部署是持续交付的下一步,指的是代码通过评审以后,自动部署到生产环境。持续部署的目标是,代码在任何时刻都是可部署的,可以进入生产阶段。持续部署的前提是能自动化完成测试、构建、部署等步骤。

1.2)Jenkins和maven用途上的区别

Maven作用是什么
① Maven 是工具,专注服务于 Java 平台的项目自动化构建和依赖管理。
②可以整合多个项目之间的引用关系,我们可以根据业务和分层需要任意拆分一个项目。
③提供规范的管理各个常用jar包及其各个版本,并且可以自动下载和引入项目中。
④可以根据指定版本自动解决jar包版本兼容问题。
⑤可以把jar包所依赖的其它jar包自动下载并引入项目。

Jenkins作用是什么
①自动化构建:Jenkins可以根据代码仓库的变化自动触发构建过程,包括编译、打包和生成构建报告等。
②自动化测试:Jenkins可以自动运行各种测试工具和测试框架,如JUnit、Selenium等
③自动化部署:Jenkins可以自动化部署软件到各个环境,如开发环境、测试环境和生产环境等。
④持续集成/持续部署:Jenkins可以将不同的开发分支自动合并,并进行编译、测试和部署等流程,以确保代码的集成和交付的质量和稳定性。

1.3)为什么使用Jenkins

曾经的打包部署:
提交代码,拉取代码并打包,上传到服务器,确认程序是否在运行,关闭运行的程序启动新的jar包,查看是否启动新程序成功,确认成功测试人员测试。

使用Jenkins后:
将代码提交到git后就自动打包部署

1.4)学习过程中的疑问

这里是我学习过程中产生的几个疑问:
①Jenkins如何安装
②Jenkins如何使用
③Jenkins插件安装是啥

第二章、安装Jenkins

2.1)安装之前的准备

①windowsJDK安装教程: jdk1.8安装教程及环境变量配置(含jdk8,11,13安装文件)
②git下载和安装使用教程: 代码托管/版本控制工具:Git的安装和使用
③maven下载和安装教程: Idea整合Maven安装及配置教程(图文详解)
④windowsTomcat服务器安装: Tomcat服务器下载安装及配置教程
⑤如果使用Linux系统看这个: Linux操作系统学习,Linux基础命令大全
⑥如果使用docker安装Jenkins看这篇: Docker部署Jenkins

2.2)Windows中Jenkins下载安装教程

①官网下载安装包:
官网链接:点击跳转:https://www.jenkins.io/

在这里插入图片描述

跳转到这个页面,点这里下载 .war安装包。Linux和Windows都是这个安装包

在这里插入图片描述

②把下载好的jenkins.war 放文件夹下。在这个目录使用Java -jar jenkins.war命令启动
在这里插入图片描述

③安装成功显示如下界面,

在这里插入图片描述

④浏览器输入:localhost:8080/ 登录Jenkins,C:\Users\86130.jenkins\secrets\initialAdminPassword文件里找到密码。密码复制进来,点击继续
在这里插入图片描述

2.3)Jenkins安装插件,修改密码和汉化

①选择默认安装插件
在这里插入图片描述
②创建用户,点击使用admin账号继续
在这里插入图片描述
③保存后点击开始使用Jenkins
在这里插入图片描述
④修改密码:admin–>设置–>下拉找到Password–>修改后点击保存
在这里插入图片描述
在这里插入图片描述

⑤汉化:找到Mange Jenkins选项进入后选择 Plugins,在plugins installed选项查找到这两个插件 Locale plugin 和 Localization: Chinese查看是否安装
在这里插入图片描述
回到Mange Jenkins选项system,下拉找到Locale,输入zh_CN,点击保存
在这里插入图片描述
汉化失败就用英文吧,我找了半天也没找到解决办法。

第三章、Jenkins配置

吐槽一下这个汉化,一塌糊涂。Jenkins这不同版本的页面也是乱七八糟,产品脑子秀逗了。

3.1)配置

①在Security里配置一下允许注册
在这里插入图片描述
②工具设置
maven配置

在这里插入图片描述
JDK设置

在这里插入图片描述
git设置
在这里插入图片描述
maven设置
在这里插入图片描述

3.2)创建Jenkins任务关联Git项目

①在IDEA中创建SpringBoot项目并且传到github

idea快速搭建Springboot项目

代码托管/版本控制工具:Git的安装和使用

②新增任务
在这里插入图片描述
输入项目名称,选择第一项,确定
在这里插入图片描述
②设置github项目地址
在这里插入图片描述

②登录git,复制项目http地址
在这里插入图片描述
③设置源码管理
在这里插入图片描述
④输入git账号密码
在这里插入图片描述
选择刚刚的配置,保存
在这里插入图片描述

解决报错:Failed to connect to repository : Error performing git command: F:\Git\Git ls-remote -h https://github.com/baomingshu/money.git HEAD:
这是Tools那边git的安装路径写错了,在Tools那边修改一下安装路径为

F:\Git\Git\bin\git.exe

解决报错:SSL certificate problem: unable to get local issuer certificate
这是因为服务器上的SSL证书未经过第三方机构认证,git就会报错。原因是因为未知的没有签署过的证书意味着可能存在很大的风险。解决办法就是通过下面的命令将git中的sslverify关掉:在git bash里输入命令

git config --global http.sslverify false

3.3)构建远程触发器

①什么是触发器:
Jenkins触发器是一种机制,用于自动或手动启动Jenkins项目的构建过程。触发器可以根据不同的条件和事件来触发构建,例如源代码的变更、定时调度、其他项目的构建完成等。
Jenkins内置了多种触发器:
触发远程构建:
通过访问一个特定的URL并带上身份验证令牌来触发构建。这种方式常用于在其他系统中集成Jenkins,并通过链接远程触发项目的构建。
定时构建:按照设定的时间周期进行构建,例如每天、每周或每月的特定时间进行构建。这种方式适用于需要定期执行构建任务的项目。
Webhooks构建:一些SCM(如GitHub和Bitbucket)允许Jenkins作为Webhook的接收者。当源代码库发生变化时,SCM会自动向Jenkins发送一个请求,触发相应的构建。
Post-commit hook构建:当源代码库发生提交时,可以设置一个钩子自动触发Jenkins构建。例如,在Git中,可以在.git/hooks/post-commit中设置一个脚本,当提交发生时,该脚本将自动运行并触发Jenkins构建。

②构建远程触发:
在这里插入图片描述
下面这个就是项目的回调地址,可以在浏览器访问这个URL地址触发构建项目,即拉取代码打包部署操作。但是实际上我们不会去访问而是由git来执行回调这个地址

http://localhost:8080/job/jenkinsDemo/build?token=token_demo

构建环境无需配置,需要配置下面的build steps(构建):
在这里插入图片描述
选择最上层maven目标后,设置maven版本和需要执行的命令:
在这里插入图片描述

3.4)构建后操作

构建后操作的意思是,jar打包好后,要将jar发送到哪里去,发送后去和启动等

设置构建后操作,发现没有Post Build task插件
在这里插入图片描述

去插件管理安装Post Build task插件
在这里插入图片描述
选择Post Build task插件,在红框里放需要执行的脚本内容(这个内容自己改,不会改就得百度去学一下)

在这里插入图片描述
脚本的内容大致为:把xxx.jar包从仓库复制到某个地方,获取正在运行的xxx.jar的进程ID,关闭进程后运行java -jar xxx.jar

#!/bin/bash
cp /root/.m2/repository/com/example/jkdemo/0.0.1-SNAPSHOT/jkdemo-0.0.1-SNAPSHOT.jar  /opt/cbeann/jkdemo-0.0.1-SNAPSHOT.jar
your_name=$(ps -ef | grep jkdemo-0.0.1-SNAPSHOT.jar | grep -v grep)
#echo ${your_name}array=(${your_name// / })  process_id=${array[1]}  ##获得进程IDkill -9 ${process_id}java -jar /opt/cbeann/jkdemo-0.0.1-SNAPSHOT.jar &

3.5)尝试手动构建

点击JenkinsDemo
在这里插入图片描述
点击马上构建
在这里插入图片描述
点击红框
在这里插入图片描述
跳转后点击控制台查看构建进度
在这里插入图片描述

3.6)GitHub服务器配置

登录GitHub,配置github的webhooks:关联jenkins触发器
在这里插入图片描述
payload URL处填入回调地址
在这里插入图片描述

到这里凉了。后面一段我不会花生壳,不会外网映射,后面的都是搬运的了
搬运地址:Jenkins详细教程

特别注意:为了保证回调地址网可以使用,
  我已经将地址:http://localhost:8080/job/jenkinsDemo/build?token=token_demo,
  通过花生壳进行外网映射为:http://zhishidi.imwork.net/job/jenkinsDemo/build?token=token_demo
  所以,下面配置的是外网映射地址。
在这里插入图片描述

第四章、参考文章

Jenkins详细教程

Jenkins的简单使用【图文并茂】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/591859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

面向对象(类和对象,对象内存图,成员变量和局部变量,封装,构造方法)

1. 类和对象 1.1 类和对象的理解 客观存在的事物皆为对象 ,所以我们也常常说万物皆对象。 类 类的理解 类是对现实生活中一类具有共同属性和行为的事物的抽象类是对象的数据类型,类是具有相同属性和行为的一组对象的集合简单理解:类就是对…

计算机网络(1)

计算机网络(1) 小程一言专栏链接: [link](http://t.csdnimg.cn/ZUTXU) 计算机网络和因特网(1)因特网概念解读服务常见的服务 协议网络边缘特点强调 网络核心特点强调 小程一言 我的计算机网络专栏,是自己在计算机网络…

Python模拟技巧实现自动抽屉登录和自动点赞

目录 一、引言 二、准备工作 三、自动抽屉登录 四、自动点赞 五、注意事项 六、案例分析 七、总结 一、引言 随着互联网的普及,人们越来越依赖于各种在线平台进行社交互动和信息获取。在这些平台上,用户需要登录才能享受各种服务,同时…

【DevOps】搭建 项目管理软件 禅道

文章目录 1、简介2、环境要求3、搭建部署环境3.1. 安装Apache服务3.2. 安装PHP环境(以php7.0为例 )3.3. 安装MySQL服务 4、搭建禅道4.1、下载解压4.2、 配置4.2.1、 启动4.2.2、自启动4.2.3、确认是否开机启动 5、成功安装 1、简介 禅道是国产开源项目管…

Halcon底帽运算bottom_hat

Halcon底帽运算 底帽运算的原理是用原始的二值图像减去闭运算的图像。闭运算的目的是对某些局部区域进行“填补”,如填空洞、使分离的边缘相连接等。而底帽运算正是用来提取这些用于填补的区域的。图(a)为从二值图像中提取出的亮的区域&…

解决 Nginx 反向代理中的 DNS 解析问题:从挑战到突破20231228

引言 在使用 Nginx 作为反向代理服务器时,我们可能会遇到各种配置和网络问题。最近,我遇到了一个有趣的挑战:Nginx 在反向代理配置中无法解析特定的域名,导致 502 错误。这个问题的解决过程不仅揭示了 Nginx 的一个不太为人知的功…

目标检测-One Stage-SSD

文章目录 前言一、SSD的网络结构和流程二、SSD的创新点总结 前言 根据前文目标检测-One Stage-YOLOv1可以看出YOLOv1的主要缺点是: 每个格子针对目标框的回归是不加限制的,导致目标的定位并不是很精准和Faster RCNN等先进Two Stage算法相比&#xff0c…

(NeRF学习)NeRFStudio安装win11

参考: 【深度学习】【三维重建】windows11环境配置tiny-cuda-nn详细教程nerfstudio介绍及在windows上的配置、使用NeRFStudio官网githubRuntimeError: PytorchStreamReader failed reading zip archive: failed finding central directory原因及解决 目录 requireme…

计算机毕业设计 基于SSM的果蔬作物疾病防治系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍:✌从事软件开发10年之余,专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ 🍅文末获取源码联系🍅 👇🏻 精…

理解SQL中not in 与null值的真实含义

A not in B的原理是拿A表值与B表值做是否不等的比较, 也就是a ! b. 在sql中, null是缺失未知值而不是空值。 当你判断任意值a ! null时, 官方说, “You cannot use arithmetic comparison operators such as , <, or <> to test for NULL”, 任何与null值的对比都将返…

复兴计划01-lc06

StringBuilder和StringBuffer的区别 1. StringBuffer和StringBuilder都是用于字符串动态拼接,但是StringBuffer拼接的函数方法的实现中用了synchornized上锁&#xff0c;效率较低&#xff0c;不过可以用于多线程以此来维护线程安全&#xff1b;相比之下&#xff0c;StringBuil…

istio 限流:本地限流+全局限流

istio 限流在官网的位置是 任务->策略执行->使用 Envoy 启用速率限制 istio 限流基于数据面 Envoy 开发&#xff0c;Envoy 支持两个类型限流&#xff0c;分别是本地限流和全局限流&#xff08;本地限流和全局限流可以一起使用&#xff09; 开始之前 安装 istio部署 boo…

2024.1.1力扣每日一题——经营摩天轮的最大利润

2024.1.1 题目来源我的题解方法一 模拟 题目来源 力扣每日一题&#xff1b;题序&#xff1a;1599 我的题解 方法一 模拟 计算当前上摩天轮的人数和等待的人数就可以得到该轮次的利润&#xff0c;然后一只更新最大利润就可以了。 时间复杂度&#xff1a;O(n)。n数组的长度 空…

滴滴高级Java面试真题

今年IT寒冬&#xff0c;大厂都裁员或者准备裁员&#xff0c;作为开猿节流主要目标之一&#xff0c;我们更应该时刻保持竞争力。为了抱团取暖&#xff0c;林老师开通了《知识星球》&#xff0c;并邀请我阿里、快手、腾讯等的朋友加入&#xff0c;分享八股文、项目经验、管理经验…

Linux | 分布式版本控制工具Git【版本管理 + 远程仓库克隆】

文章目录 一、前言二、有关git的相关历史介绍三、Git版本管理1、感性理解 —— 大学生实验报告2、程序员与产品经理3、张三的CEO之路 —— 版本管理工具的诞生 四、如何在Linux上使用Git1、创建仓库2、将仓库克隆到本地3、git三板斧① git add② git commit③ git push 4、有关…

软件测试之自动化测试的四个阶段

第一阶段&#xff1a;API自动化 之前的想法是&#xff1a;通过API创建数据&#xff0c;访问数据&#xff0c;进行数据操作&#xff0c;存储数据库&#xff0c;通过模拟前端的操作来想象API的访问流程。 然后&#xff0c;验证数据库是否存储正确。后来发现该想法流程就是错误的…

2024/1/2 C++ work

全局变量&#xff0c;int monster 10000;定义英雄类hero&#xff0c;受保护的属性string name&#xff0c;int hp,int attck&#xff1b;公有的无参构造&#xff0c;有参构造&#xff0c;虚成员函数 void Atk(){blood-0;}&#xff0c;法师类继承自英雄类&#xff0c;私有属性 …

十大排序的个人总结之——冒泡排序、插入排序

同样&#xff0c;这两几乎也是被淘汰了的算法&#xff0c;尽管它们是稳定的&#xff0c;但是时间复杂度没人喜欢&#xff0c;了解一下就好&#xff0c;没啥好说的&#xff0c;注意最后一句话就行了 一&#xff0c;冒泡排序 1. 算法步骤 共n-1趟&#xff0c;谁两敢冒泡就换了…

Tomcat服务为什么起不来?

转载说明&#xff1a;如果您喜欢这篇文章并打算转载它&#xff0c;请私信作者取得授权。感谢您喜爱本文&#xff0c;请文明转载&#xff0c;谢谢。 服务跑在Tomcat下面&#xff0c;有时候会遇到Tomcat起不来的情况。目前为止常遇到的情况有如下几种&#xff1a; 1. Tomcat服务…

【VSCode】关闭双击shift出现搜索

原因 有时候总是手滑按两下shift&#xff0c;每次都会弹出如下图的搜索框&#xff0c;导致很不方便 解决办法 找到该文件 C:\Users\admin\.vscode\extensions\k--kato.intellij-idea-keybindings-1.5.12\package.json&#xff08;admin是自己的用户名&#xff09; 然后关键字…