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.hqwc.cn/news/315889.html

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

相关文章

arm64 UAO/PAN 特性对用户空间边界读写的影响(copy_from/to_user)

文章目录 1 UAO/PAN 特性由来2 硬件PAN的支持3 UAO 的支持 1 UAO/PAN 特性由来 linux 内核空间与用户空间通过 copy_from/to_user 进行数据拷贝交换,而不是通过简单的 memcpy/strcpy 进行拷贝复制,原因是安全问题(这里不详细展开&#xff09…

小白入门java基础-注解

一:介绍 Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的高级程序设计语言。 Java 可运行于多个平台,如 Windows, Mac OS 及其他多种 UNIX 版本的系统。Java语言编写的程序,在一次编译后,可以在多个系统平台上运行。 主…

开关电源输入输出电压测试方法:如何用开关电源智能测试系统测试输入输出电压?

一、用万用表测量输入输出电压 1. 连接万用表到电路中 2. 将万用表调到直流电压挡,连接红表笔到开关电源正极,连接黑表笔到开关电源负极。 3. 打开电源,读取万用表显示的电压值。 二、用示波器测量输入输出电压 1. 连接示波器到电路中 2. 将示…

「Qt Widget中文示例指南」如何实现一个日历?(一)

Qt 是目前最先进、最完整的跨平台C开发工具。它不仅完全实现了一次编写,所有平台无差别运行,更提供了几乎所有开发过程中需要用到的工具。如今,Qt已被运用于超过70个行业、数千家企业,支持数百万设备及应用。 本文中的CalendarWi…

idea插件提示补全代码AI助手阿里通义灵码安装

idea插件提示补全代码AI助手阿里通义灵码安装 tab快捷键可以补全代码 1、 2、 3、 4、 5、

lenovo联想小新Pro-13 2020 Intel IML版笔记本电脑(82DN)原装出厂Win10系统镜像

链接:https://pan.baidu.com/s/1bJpfXudYEC7MJ7qfjDYPdg?pwdjipj 提取码:jipj 原装出厂Windows10系统自带所有驱动、出厂主题壁纸、系统属性专属LOGO标志、Office办公软件、联想电脑管家等预装程序 所需要工具:16G或以上的U盘 文件格式&a…

七功能遥控编解码芯片

一、基本概述 TT6/TR6 是一对为遥控玩具车设计的 CMOS LSI 芯片。TT6 为发射编码芯片,TR6 为接收解码芯片。TT6/TR6 提供七个功能按键控制前进、后退、左转、右转、加速、独立功能 F1,独立功能 F2 的动作。除此以外,还有这五种常规小车功能(…

OLED硬件电路设计

OLED,全称有机自发光二极管。其主要通过控制注入子像素发光材料的电流大小,实现不同颜色的显示。 OLED屏幕的每个像素点都可以理解成一颗独立控制的灯珠,开启时只需要进行显示的像素点即可。不像LCD一样,显示需要整块背光的亮度,…

超详细解释奇异值分解(SVD)【附例题和分析】

目录 一. 矩阵对角化 二. 奇异值分解 三. 对比奇异值分解与特征值分解 四. SVD分解与四大基础子空间 五. SVD分解的正交矩阵 六. 方阵与SVD分解 七. 单位特征向量与SVD分解 八. 例题分析:秩为1 九. 例题分析:秩为2 十. 计算机网络与矩阵的秩 一…

RabbitMQ集群的简单说明

1.普通集群(副本集群) 当集群中某一时刻master主节点宕机,可以对master中Queue中的消息进行备份。而就算master宕机了,从节点不会对外提供服务,等到master节点恢复后,系统才会恢复正常。 主从架构的缺点是队列中的消息只是位于主节…

探索Java的魅力

从本篇文章开始,小编准备写一个关于java基础学习的系列文章,文章涉及到java语言中的基础组件、实现原理、使用场景、代码案例。看完下面一系列文章,希望能加深你对java的理解。 本篇文章作为本系列的第一篇文章,主要介绍一些java…

C语言实验3:函数的定义

目录 一、实验要求 二、实验原理 1.函数头 2.函数体 3.函数的定义及使用 三、实验内容 1. sum函数 代码 截图 分析 2. sum函数 代码 截图 分析 3. rank_grade函数 代码 截图 分析 4. rank_grade函数 代码 截图 分析 5. 函数的嵌套使用 代码 截图 分析…