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,第一库目录不对…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

超短脉冲激光自聚焦效应
前言与目录 强激光引起自聚焦效应机理 超短脉冲激光在脆性材料内部加工时引起的自聚焦效应,这是一种非线性光学现象,主要涉及光学克尔效应和材料的非线性光学特性。 自聚焦效应可以产生局部的强光场,对材料产生非线性响应,可能…...
利用ngx_stream_return_module构建简易 TCP/UDP 响应网关
一、模块概述 ngx_stream_return_module 提供了一个极简的指令: return <value>;在收到客户端连接后,立即将 <value> 写回并关闭连接。<value> 支持内嵌文本和内置变量(如 $time_iso8601、$remote_addr 等)&a…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...

什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...

linux arm系统烧录
1、打开瑞芯微程序 2、按住linux arm 的 recover按键 插入电源 3、当瑞芯微检测到有设备 4、松开recover按键 5、选择升级固件 6、点击固件选择本地刷机的linux arm 镜像 7、点击升级 (忘了有没有这步了 估计有) 刷机程序 和 镜像 就不提供了。要刷的时…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
在Ubuntu中设置开机自动运行(sudo)指令的指南
在Ubuntu系统中,有时需要在系统启动时自动执行某些命令,特别是需要 sudo权限的指令。为了实现这一功能,可以使用多种方法,包括编写Systemd服务、配置 rc.local文件或使用 cron任务计划。本文将详细介绍这些方法,并提供…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...