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,第一库目录不对…...
前后端分离林业产品推荐系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程
摘要 随着信息技术的快速发展,林业产品的销售和推广方式逐渐从传统线下模式转向数字化和智能化。林业产品种类繁多,消费者在选购时往往面临信息不对称的问题,难以高效匹配自身需求。同时,林业企业也缺乏精准的用户画像和推荐机制&…...
从泰鼎高管离职事件看半导体公司治理与技术战略平衡
1. 事件背景与核心脉络梳理2011年初,半导体行业发生了一起在当时颇具话题性的高层人事地震。主角是当时在数字电视和多媒体处理器领域颇有建树的泰鼎微系统(Trident Microsystems, Inc.)。事件的核心是,公司的首席执行官ÿ…...
收藏!AI时代程序员转型指南:从纯编码到人机协同高手
本文揭示了AI对程序员行业的深刻变革:初级编码岗需求锐减,而AI协作、架构师等高端岗位需求激增。文章提出两个阶段提升竞争力:第一阶段掌握AI工具栈(编码助手、调试工具等)并遵循人机协同法则;第二阶段构建…...
电光非线性计算加速Transformer注意力机制
1. 电光非线性计算加速Transformer注意力机制的技术背景Transformer架构已经成为当前自然语言处理和计算机视觉领域的主导性神经网络结构,其核心组件——注意力机制依赖于Softmax等非线性运算。虽然这些非线性操作仅占模型总计算量的不到1%,但由于现代GP…...
RISC-V架构下轻量级LLM推理引擎的优化与部署实践
1. 项目概述:一个为RISC-V架构优化的轻量级LLM推理引擎最近在折腾边缘计算和嵌入式AI部署的朋友,可能都绕不开一个核心矛盾:大语言模型(LLM)能力虽强,但动辄数十亿甚至上百亿的参数规模,对计算资…...
MCP协议与n8n集成:构建标准化AI自动化工作流
1. 项目概述:当MCP遇见n8n,一个自动化新范式的诞生最近在折腾自动化工作流,特别是想把不同AI模型的能力串联起来,发现了一个挺有意思的项目:brunopelatieri/mcp-n8n-bruia。这名字乍一看有点复杂,拆开来看&…...
Go语言轻量级Web框架Tapestry:高性能路由与中间件设计实战
1. 项目概述与核心价值最近在开源社区里,一个名为Tapestry的项目引起了我的注意。它来自开发者 NatsuFox,定位是一个“轻量级、高性能的 Web 框架”。说实话,现在各种语言的 Web 框架多如牛毛,从 Python 的 Flask、Django…...
第10期| 空间算法入门--GeoAI核心算法拆解,不用啃论文,通俗看懂原理
大家好,我是你们的地理信息工程师朋友,专注GIS与AI的实战落地。 第上一期期我们聊了GeoAI的应用场景,很多朋友留言说“想入门,但论文太晦涩,代码看不懂”。这期实战笔记就精准解决这个痛点——不啃晦涩论文,…...
VSCode写Verilog效率翻倍:除了语法检查,再教你用Python插件自动生成模块例化
VSCode写Verilog效率翻倍:Python插件自动化实战指南 在FPGA开发中,Verilog代码的重复性劳动往往消耗工程师大量时间。我曾在一个图像处理项目中被模块例化折磨得焦头烂额——手动编写30多个相同结构的FIFO例化代码,不仅容易出错,后…...
物联网安全创业:从技术挑战到市场机遇的深度解析
1. 物联网安全创业的“冷”与“热”:一个从业者的深度观察作为一名在嵌入式系统和网络安全领域摸爬滚打了十几年的工程师,我几乎见证了物联网从概念炒作到遍地开花的全过程。每次和同行、投资人聊天,话题总绕不开两个极端:一边是对…...
