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

相关推荐
wowocpp3 分钟前
查看 linux ubuntu 分区 和 挂载 情况 lsblk
linux·运维·ubuntu
_.Switch4 小时前
高级Python自动化运维:容器安全与网络策略的深度解析
运维·网络·python·安全·自动化·devops
2401_850410834 小时前
文件系统和日志管理
linux·运维·服务器
JokerSZ.4 小时前
【基于LSM的ELF文件安全模块设计】参考
运维·网络·安全
芯盾时代4 小时前
数字身份发展趋势前瞻:身份韧性与安全
运维·安全·网络安全·密码学·信息与通信
心灵彼岸-诗和远方5 小时前
DevOps业务价值流:架构设计最佳实践
运维·产品经理·devops
一只哒布刘5 小时前
NFS服务器
运维·服务器
苹果醋36 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx
二十雨辰6 小时前
[linux]docker基础
linux·运维·docker
Jason-河山7 小时前
【自动化更新,让商品信息跳舞】——利用API返回值的幽默编程之旅
运维·自动化