Jenkins基础教程

目录

友情提醒:

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

第一章、快速了解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那边修改一下安装路径为

java 复制代码
F:\Git\Git\bin\git.exe

解决报错:SSL certificate problem: unable to get local issuer certificate

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

java 复制代码
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来执行回调这个地址

java 复制代码
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

java 复制代码
#!/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]}  ##获得进程ID

kill -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的简单使用【图文并茂】

相关推荐
HUT_Tyne26515 分钟前
Linux 快速入门
linux·运维·服务器
鸠摩智首席音效师39 分钟前
如何在 Linux 中使用 dd 命令 ?
linux·运维·服务器
JuiceFS2 小时前
JuiceFS sync 原理解析与性能优化,企业级数据同步利器
运维·后端
Logan Lie3 小时前
Web服务监听地址的取舍:0.0.0.0 vs 127.0.0.1
运维·后端
Y淑滢潇潇3 小时前
RHCE 防火墙实验
linux·运维·rhce
稻谷君W4 小时前
Ubuntu 远程访问 Win11 WSL2 并固定访问教程
linux·运维·ubuntu
泡沫·4 小时前
4.iSCSI 服务器
运维·服务器·数据库
悠悠121385 小时前
告别Zabbix?我用Netdata只花10分钟就搞定了50台服务器的秒级监控(保姆级实战)
运维·服务器·zabbix
天庭鸡腿哥5 小时前
大小只有4K的软件,可让系统瞬间丝滑!
运维·服务器·windows·microsoft·everything
虚伪的空想家5 小时前
华为昇腾Atlas 800 A2物理服务器开启VT-d模式
运维·服务器·ubuntu·kvm·vt-d·直通