Linux利用Jenkins部署SpringBoot项目保姆级教程
在当今快速发展的软件开发领域,持续集成和持续部署(CI/CD)已经成为提升开发效率、缩短产品上市时间的关键实践。Linux系统以其稳定性和开源友好性,成为众多开发者和企业的首选平台。而Spring Boot,作为一个轻量级的Java应用框架,因其简化的配置和快速的开发周期,受到了广泛的欢迎。
在本篇博客中,我们将深入探讨如何在Linux环境下,利用Jenkins这一强大的自动化服务器,来部署和管理基于Spring Boot的项目。无论您是初学者还是有经验的开发者,本教程都将为您提供一份详尽的指南,从基础的环境搭建到高级的部署策略,确保您能够顺利地将项目从开发环境迁移到生产环境。
我们将逐步介绍Java和Maven的安装,Git的配置以及数据库MySQL和Redis的设置。随后,我们会详细讲解Jenkins的安装和配置,包括插件的选择和用户角色的管理。更重要的是,我们将指导您如何与国内流行的代码托管平台码云进行集成,以及如何通过钉钉实现实时的通知和反馈。
通过本教程,您将掌握一套完整的工具链,帮助您实现自动化测试、构建和部署,从而提高软件质量和开发效率。让我们一起开始这段提升技能的旅程,探索Linux、Jenkins和Spring Boot带来的无限可能。
文章目录
- 环境部署
- java安装
- maven安装
- git安装
- 软件安装
- MySQL安装
- 其他
- 修改yum国内源
- 修改mysql默认数据目录
- Redis安装
- Jenkins安装
- Jenkins安装
- Jenkins配置
- 启动Jenkins及查看状态
- 插件安装
- 用户创建
- 角色创建
- 码云配置
- 项目创建
- 钉钉配置
环境部署
java安装
- 查看是否已经安装java环境
rpm -qa|grep java
- 如果已经安装可以卸载
rpm -e --nodeps java*
- 查看yum中java版本
yum search jdk

- 发现有java11,列出java11
yum list |grep java-11

- 安装java11
yum install -y java-11-openjdk.x86_64
- 完成安装,验证
java -version

maven安装
- 下载maven
下载地址:maven官网,(历史版本下载)

- 安装maven
mkdir -p /usr/local/maven
将安装文件上传到Linux,之后解压到安装目录
tar -zxvf apache-maven-3.8.1-bin.tar.gz
现在maven已经安装完成,接下来开始配置maven
- 创建资源目录
mkdir -p /m2/repository
- 添加阿里镜像云
cd /usr/local/maven/apache-maven-3.8.1/conf
vi settings.xml
<mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>阿里云公共仓库</name><url>https://maven.aliyun.com/repository/public</url>
</mirror>
将上述地址更换到下图位置

5.添加本地资源路径

6.添加环境变量
vi /etc/profile
文件最后增加下边代码
MAVEN_HOME=/usr/local/maven/apache-maven-3.8.1
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME PATH

保存之后,重新加载配置文件
source /ert/profile
测试是否生效
mvn -version

git安装
- 安装git
yum install git
- 检查是否安装成功
git --version
安装成功之后如图:

软件安装
MySQL安装
见文章《CentOS7安装MySQL8》,如果官方地址下载速度太慢,可选择国内镜像下载。
其他
修改yum国内源
由于mysql默认安装地址为国外地址,有时候网络环境会非常慢,可以将yum源修改为国内环境。
修改为阿里源:
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
之后刷新
yum clean all // 清理缓存
yum -y update // 更新
yum makecache // 重新建立缓存
修改mysql默认数据目录
vi /etc/my.cnf

新建目录
mkdir -p /home/mysql
为目录赋值
chown -R mysql.mysql /home/mysql
若之后还报错,则需要关闭Selinux
setenforce 0
关于SeLinux,可参考《mysql8 为什么 要 setenforce 0》
Redis安装
- 下载fedora的epel仓库
yum install epel-release
- 安装redis
yum install redis
- redis命令
service redis start // 启动
service redis stop // 停止
service redis status // 查看状态
chkconfig redis on // 开机启动
redis-cli // 本机登录
key * // 列出所有keg
get [keyName] // 查看key值
Jenkins安装
Jenkins安装
- 根据自己条件挑选合适的版本进行安装,具体版本和java版本对应关系可点击查看。这里以2.440版本为例说明。从镜像网站下载适合自己系统的镜像,此教程为Centos7为例。
- 上传到服务器之后,安装Jenkins
rpm -ivh jenkins-2.440.2-1.1.noarch.rpm

Jenkins配置
配置文件目录
/usr/lib/systemd/system/jenkins.service
-
用户修改

-
工作目录

-
端口

启动Jenkins及查看状态
service jenkins restart && systemctl status jenkins

访问ip:端口号

查看密码登录之后暂时不安装插件,之后自定义安装。在下图中选择“无”。

插件安装
- 如下图所属位置,选择插件进行安装

- 推荐插件安装
- 汉化插件

- 权限插件:Role-based
- gitee
- 钉钉推送:DingTalk
- maven:

- 汉化插件
用户创建

角色创建
- 安全策略修改
安全策略修改为:role-based strategy

- 新建角色
在“安全”-“Manage and Assign Roles”中创建

- 角色配置

码云配置
- 全局配置

- 源码管理
在新建maven之后,需要配置gitee源码管理。

选择“git”,填写gitee地址、用户名密码、分支、触发器选择gitee、生成webhook密码、配置gitee的webhook、pom文件(Jenkins的workspace目录)、打包设置(clean package -Dmaven.test.skip=true -Pdev,-P配置文件)、构建脚本
项目创建
- 创建视图

- 创建一个maven任务


钉钉配置
系统设置-钉钉配置。
- 配置通知时机;
- 配置webhook地址及加密;
- 用户中填写钉钉中手机号,可在机器人发送消息时@对应人
相关文章:
Linux利用Jenkins部署SpringBoot项目保姆级教程
在当今快速发展的软件开发领域,持续集成和持续部署(CI/CD)已经成为提升开发效率、缩短产品上市时间的关键实践。Linux系统以其稳定性和开源友好性,成为众多开发者和企业的首选平台。而Spring Boot,作为一个轻量级的Jav…...
elementUI 输入框按回车刷新页面问题
分析原因: 当 el-form 表单内只有一个 el-input 输入框时,且type为text类型时,在输入框内按回车就会触发表单的提交事件。 而当 el-form 表单内有多个 el-input 输入框时,按回车不会执行任何操作。 使用.prevent修饰符来阻止默…...
C++的字节对齐
什么是字节对齐 参考什么是字节对齐,为什么要对齐? 现代计算机中,内存空间按照字节划分,理论上可以从任何起始地址访问任意类型的变量。但实际中在访问特定类型变量时经常在特定的内存地址访问,这就需要各种类型数据按照一定的规…...
ALPHA开发板上的PHY芯片驱动:LAN8720驱动
一. 简介 前面文章了解到,Linux内核是有提供 PHY通用驱动的。 本文来简单了解一下ALPHA开发板上的 PHY网络芯片LAN8720的驱动。是 LAN8720芯片的公司提供的 PHY驱动。 二. ALPHA开发板上的PHY芯片驱动:LAN8720驱动 我 们 来 看 一 下 LAN8720A 的 …...
C语言游戏实战(9):球球大作战
前言: 这款简易版的球球大作战是一款单人游戏,玩家需要控制一个小球在地图上移动,吞噬其他小球来增大自己的体积。本游戏使用C语言和easyx图形库编写,旨在帮助初学者了解游戏开发的基本概念和技巧。 在开始编写代码之前…...
【Windows】关闭自动更新
右键单击“此电脑”,点击“管理”。 找到:任务计划程序 -> 任务计划程序库 -> Microsoft -> Windows -> WindowsUpdate 右键单击Scheduled Start任务,然后点击“禁用”即可。 可能还会存在左下角提示更新重启的字样&#x…...
mac如何检测移动硬盘 mac硬盘检测工具 Tuxera怎么用 Tuxera NTFS官网
在工作学习中,我们都绕不开用移动硬盘来拷贝存储一些文件。但是在使用过程中,我们经常遇到“mac检测不到移动硬盘”“移动硬盘不存在”等问题,今天本文就带大家了解下mac如何检测移动硬盘,mac硬盘检测工具。 一、mac如何检测移动…...
1038 Recover the Smallest Number
idea 给出若干个可能含有前导0的数字串,将其进行拼接使其组成的数最小。 拼接串,想到借助string。 找最小,样例中的32,321, 3214尤为具备代表性,让字典序小的数尽可能靠前,联想到string的比较规则也是字典序 >判断…...
【Go】四、包名、访问范围控制、标识符、运算符
文章目录 1、_2、包名3、命名大小影响可访问范围4、运算符5、获取终端输入 1、_ 下划线"_"本身在Go中是一个特殊的标识符,称为空标识符用于忽略某个值 1)忽略导入的没使用的包 2)忽略某个返回值 2、包名 main包是程序的入口包&a…...
达梦数据库日志文件管理
达梦数据库日志文件管理 联机重做日志管理归档日志文件管理开启归档模式:SQL开启归档模式:dmarch.ini归档文件切换和删除 联机重做日志管理 检查联机重做日志: select * from v$rlog; --CUR_FILE表示正在使用的日志文件编号select * fr…...
zookeeper 监控 与 JVM 设置
一、通过JMX监控 JVM 默认情况下,在 ./bin/zkServer.sh 脚本中是默认开启了JMX监控的,并且是不需要认证的,详情可见ZOOMAIN变量; ZOOMAIN"-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port$JMXPORT -D…...
【java】关于String、StringBuffer和StringBuilder的那些事
在之前的文章中我们曾简单介绍过String这个引用类型变量,其实它还有许多特性,还有StringBuffer和StringBuilder这两个方法在字符串操作中也有非常重要的地位,接下来就由小编带大家梳理一下吧👊 目录 一、String 1、构造方法 2、…...
Spring 的 Ioc配置
HappyComponent.java package com.atguigu.Ioc_01;public class HappyComponent {// 默认包含无参的构造方法public void dowork(){System.out.println("HappyComponent.dowork");} }ClientService.java package com.atguigu.Ioc_01;静态工厂类 public class Clien…...
基于Java-SpringBoot+vue实现的前后端分离信息管理系统设计和实现
基于Java-SpringBootvue实现的前后端分离信息管理系统设计和实现 博主介绍:多年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐…...
用Python实现办公自动化(自动化处理PDF文件)
自动化处理 PDF 文件 目录 自动化处理 PDF 文件 谷歌浏览器 Chrome与浏览器驱动ChromeDriver安装 (一)批量下载 PDF 文件 1.使用Selenium模块爬取多页内容 2.使用Selenium模块下载PDF文件 3.使用urllib模块来进行网页的下载和保存 4.使用urllib…...
银河麒麟操作系统Kylin Linux 离线安装Nginx1.21.5
一、查看操作系统版本号 nkvers ############## Kylin Linux Version ################# Release: Kylin Linux Advanced Server release V10 (Lance)Kernel: 4.19.90-52.15.v2207.ky10.x86_64Build: Kylin Linux Advanced Server release V10 (SP3) /(Lance)-x86_64-Build20/…...
ApiFox 使用教程
ApiFox 使用教程 目录概述需求: 设计思路实现思路分析1.基本使用教程(Apifox 使用 Postman)Apifox 下使用 mockapifox 下 swaggerApifox 下使用 Jmeter 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show…...
github拉取的项目添加至自己的仓库
想把GitHub的开源项目拉到本地进行二开,研究了一下上传到gitee的步骤: 步骤 gitee新建仓库,仓库名与本地文件夹的名称一致,建好后gitee的页面也会有显示git命令 打开项目目录,右键打开git bash(或者在gi…...
ZooKeeper 的持久化机制
持久化的定义: 数据,存到磁盘或者文件当中。机器重启后,数据不会丢失。内存 -> 磁盘的映射,和序列化有些像。 ZooKeeper 的持久化: SnapShot 快照,记录内存中的全量数据TxnLog 增量事务日志ÿ…...
VS2022+QT5.9 提示找不到qtmain.lib
从VS2013QT的项目切换到VS2022QT5.9,安装好mscv2017版本的QT5.9,项目工程选择QT project settings中的Qt Installation为mscv2017版本的QT5.9,编译好提示找不到qtmain.lib 解决思路: 提示找到xxxx.lib,第一库目录不对…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
【解密LSTM、GRU如何解决传统RNN梯度消失问题】
解密LSTM与GRU:如何让RNN变得更聪明? 在深度学习的世界里,循环神经网络(RNN)以其卓越的序列数据处理能力广泛应用于自然语言处理、时间序列预测等领域。然而,传统RNN存在的一个严重问题——梯度消失&#…...
Ascend NPU上适配Step-Audio模型
1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统,支持多语言对话(如 中文,英文,日语),语音情感(如 开心,悲伤)&#x…...
【python异步多线程】异步多线程爬虫代码示例
claude生成的python多线程、异步代码示例,模拟20个网页的爬取,每个网页假设要0.5-2秒完成。 代码 Python多线程爬虫教程 核心概念 多线程:允许程序同时执行多个任务,提高IO密集型任务(如网络请求)的效率…...
什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
AGain DB和倍数增益的关系
我在设置一款索尼CMOS芯片时,Again增益0db变化为6DB,画面的变化只有2倍DN的增益,比如10变为20。 这与dB和线性增益的关系以及传感器处理流程有关。以下是具体原因分析: 1. dB与线性增益的换算关系 6dB对应的理论线性增益应为&…...
uniapp 小程序 学习(一)
利用Hbuilder 创建项目 运行到内置浏览器看效果 下载微信小程序 安装到Hbuilder 下载地址 :开发者工具默认安装 设置服务端口号 在Hbuilder中设置微信小程序 配置 找到运行设置,将微信开发者工具放入到Hbuilder中, 打开后出现 如下 bug 解…...
嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)
目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 编辑编辑 UDP的特征 socke函数 bind函数 recvfrom函数(接收函数) sendto函数(发送函数) 五、网络编程之 UDP 用…...
