当前位置: 首页 > news >正文

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安装

  1. 查看是否已经安装java环境
rpm -qa|grep java
  1. 如果已经安装可以卸载
rpm -e --nodeps java*
  1. 查看yum中java版本
yum search jdk

查看支持java版本

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

列出jdk11

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

验证java安装成功

maven安装

  1. 下载maven
    下载地址:maven官网,(历史版本下载)
    maven官网下载地址
  2. 安装maven
mkdir -p /usr/local/maven

将安装文件上传到Linux,之后解压到安装目录

tar -zxvf apache-maven-3.8.1-bin.tar.gz

现在maven已经安装完成,接下来开始配置maven

  1. 创建资源目录
mkdir -p /m2/repository
  1. 添加阿里镜像云
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

maven环境变量
保存之后,重新加载配置文件

source /ert/profile

测试是否生效

mvn -version

测试maven环境变量

git安装

  1. 安装git
yum install git
  1. 检查是否安装成功
git --version

安装成功之后如图:
检查git是否安装成功

软件安装

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

修改mysql数据目录
新建目录

mkdir -p /home/mysql

为目录赋值

chown -R mysql.mysql /home/mysql

若之后还报错,则需要关闭Selinux

setenforce 0

关于SeLinux,可参考《mysql8 为什么 要 setenforce 0》

Redis安装

  1. 下载fedora的epel仓库
yum install epel-release
  1. 安装redis
yum install redis
  1. redis命令
service redis start	//	启动
service redis stop	//	停止
service redis status	//	查看状态
chkconfig redis on	//	开机启动
redis-cli	//	本机登录
key *	//	列出所有keg
get [keyName]	//	查看key值

Jenkins安装

Jenkins安装

  1. 根据自己条件挑选合适的版本进行安装,具体版本和java版本对应关系可点击查看。这里以2.440版本为例说明。从镜像网站下载适合自己系统的镜像,此教程为Centos7为例。
  2. 上传到服务器之后,安装Jenkins
rpm -ivh jenkins-2.440.2-1.1.noarch.rpm

安装Jenkins

Jenkins配置

配置文件目录

/usr/lib/systemd/system/jenkins.service
  1. 用户修改
    修改Jenkins用户

  2. 工作目录
    Jenkins工作目录

  3. 端口
    Jenkins端口

启动Jenkins及查看状态

service jenkins restart && systemctl status jenkins

启动Jenkins
访问ip:端口号
启动成功
查看密码登录之后暂时不安装插件,之后自定义安装。在下图中选择“无”。
不安装插件

插件安装

  1. 如下图所属位置,选择插件进行安装
    插件安装界面
  2. 推荐插件安装
    1. 汉化插件
      汉化插件
    2. 权限插件:Role-based
    3. gitee
    4. 钉钉推送:DingTalk
    5. maven:
      maven插件

用户创建

用户创建

角色创建

  1. 安全策略修改
    安全策略修改为:role-based strategy
    修改安全策略
  2. 新建角色
    在“安全”-“Manage and Assign Roles”中创建
    在这里插入图片描述
  3. 角色配置
    角色配置

码云配置

  1. 全局配置
    gitee全局配置
  2. 源码管理
    在新建maven之后,需要配置gitee源码管理。
    源码管理
    选择“git”,填写gitee地址、用户名密码、分支、触发器选择gitee、生成webhook密码、配置gitee的webhook、pom文件(Jenkins的workspace目录)、打包设置(clean package -Dmaven.test.skip=true -Pdev,-P配置文件)、构建脚本

项目创建

  1. 创建视图
    Jenkins创建视图
  2. 创建一个maven任务
    创建一个maven任务
    在这里插入图片描述

钉钉配置

系统设置-钉钉配置。

  1. 配置通知时机;
  2. 配置webhook地址及加密;
  3. 用户中填写钉钉中手机号,可在机器人发送消息时@对应人

相关文章:

Linux利用Jenkins部署SpringBoot项目保姆级教程

在当今快速发展的软件开发领域&#xff0c;持续集成和持续部署&#xff08;CI/CD&#xff09;已经成为提升开发效率、缩短产品上市时间的关键实践。Linux系统以其稳定性和开源友好性&#xff0c;成为众多开发者和企业的首选平台。而Spring Boot&#xff0c;作为一个轻量级的Jav…...

elementUI 输入框按回车刷新页面问题

分析原因&#xff1a; 当 el-form 表单内只有一个 el-input 输入框时&#xff0c;且type为text类型时&#xff0c;在输入框内按回车就会触发表单的提交事件。 而当 el-form 表单内有多个 el-input 输入框时&#xff0c;按回车不会执行任何操作。 使用.prevent修饰符来阻止默…...

C++的字节对齐

什么是字节对齐 参考什么是字节对齐&#xff0c;为什么要对齐? 现代计算机中&#xff0c;内存空间按照字节划分&#xff0c;理论上可以从任何起始地址访问任意类型的变量。但实际中在访问特定类型变量时经常在特定的内存地址访问&#xff0c;这就需要各种类型数据按照一定的规…...

ALPHA开发板上的PHY芯片驱动:LAN8720驱动

一. 简介 前面文章了解到&#xff0c;Linux内核是有提供 PHY通用驱动的。 本文来简单了解一下ALPHA开发板上的 PHY网络芯片LAN8720的驱动。是 LAN8720芯片的公司提供的 PHY驱动。 二. ALPHA开发板上的PHY芯片驱动&#xff1a;LAN8720驱动 我 们 来 看 一 下 LAN8720A 的 …...

C语言游戏实战(9):球球大作战

前言&#xff1a; 这款简易版的球球大作战是一款单人游戏&#xff0c;玩家需要控制一个小球在地图上移动&#xff0c;吞噬其他小球来增大自己的体积。本游戏使用C语言和easyx图形库编写&#xff0c;旨在帮助初学者了解游戏开发的基本概念和技巧。 在开始编写代码之前&#xf…...

【Windows】关闭自动更新

右键单击“此电脑”&#xff0c;点击“管理”。 找到&#xff1a;任务计划程序 -> 任务计划程序库 -> Microsoft -> Windows -> WindowsUpdate 右键单击Scheduled Start任务&#xff0c;然后点击“禁用”即可。 可能还会存在左下角提示更新重启的字样&#x…...

mac如何检测移动硬盘 mac硬盘检测工具 Tuxera怎么用 Tuxera NTFS官网

在工作学习中&#xff0c;我们都绕不开用移动硬盘来拷贝存储一些文件。但是在使用过程中&#xff0c;我们经常遇到“mac检测不到移动硬盘”“移动硬盘不存在”等问题&#xff0c;今天本文就带大家了解下mac如何检测移动硬盘&#xff0c;mac硬盘检测工具。 一、mac如何检测移动…...

1038 Recover the Smallest Number

idea 给出若干个可能含有前导0的数字串&#xff0c;将其进行拼接使其组成的数最小。 拼接串&#xff0c;想到借助string。 找最小&#xff0c;样例中的32,321, 3214尤为具备代表性&#xff0c;让字典序小的数尽可能靠前&#xff0c;联想到string的比较规则也是字典序 >判断…...

【Go】四、包名、访问范围控制、标识符、运算符

文章目录 1、_2、包名3、命名大小影响可访问范围4、运算符5、获取终端输入 1、_ 下划线"_"本身在Go中是一个特殊的标识符&#xff0c;称为空标识符用于忽略某个值 1&#xff09;忽略导入的没使用的包 2&#xff09;忽略某个返回值 2、包名 main包是程序的入口包&a…...

达梦数据库日志文件管理

达梦数据库日志文件管理 联机重做日志管理归档日志文件管理开启归档模式&#xff1a;SQL开启归档模式&#xff1a;dmarch.ini归档文件切换和删除 联机重做日志管理 检查联机重做日志&#xff1a; select * from v$rlog; --CUR_FILE表示正在使用的日志文件编号select * fr…...

zookeeper 监控 与 JVM 设置

一、通过JMX监控 JVM 默认情况下&#xff0c;在 ./bin/zkServer.sh 脚本中是默认开启了JMX监控的&#xff0c;并且是不需要认证的&#xff0c;详情可见ZOOMAIN变量&#xff1b; ZOOMAIN"-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port$JMXPORT -D…...

【java】关于String、StringBuffer和StringBuilder的那些事

在之前的文章中我们曾简单介绍过String这个引用类型变量&#xff0c;其实它还有许多特性&#xff0c;还有StringBuffer和StringBuilder这两个方法在字符串操作中也有非常重要的地位&#xff0c;接下来就由小编带大家梳理一下吧&#x1f44a; 目录 一、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实现的前后端分离信息管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐…...

用Python实现办公自动化(自动化处理PDF文件)

自动化处理 PDF 文件 目录 自动化处理 PDF 文件 谷歌浏览器 Chrome与浏览器驱动ChromeDriver安装 &#xff08;一&#xff09;批量下载 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 使用教程 目录概述需求&#xff1a; 设计思路实现思路分析1.基本使用教程&#xff08;Apifox 使用 Postman&#xff09;Apifox 下使用 mockapifox 下 swaggerApifox 下使用 Jmeter 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show…...

github拉取的项目添加至自己的仓库

想把GitHub的开源项目拉到本地进行二开&#xff0c;研究了一下上传到gitee的步骤&#xff1a; 步骤 gitee新建仓库&#xff0c;仓库名与本地文件夹的名称一致&#xff0c;建好后gitee的页面也会有显示git命令 打开项目目录&#xff0c;右键打开git bash&#xff08;或者在gi…...

ZooKeeper 的持久化机制

持久化的定义&#xff1a; 数据&#xff0c;存到磁盘或者文件当中。机器重启后&#xff0c;数据不会丢失。内存 -> 磁盘的映射&#xff0c;和序列化有些像。 ZooKeeper 的持久化&#xff1a; SnapShot 快照&#xff0c;记录内存中的全量数据TxnLog 增量事务日志&#xff…...

VS2022+QT5.9 提示找不到qtmain.lib

从VS2013QT的项目切换到VS2022QT5.9&#xff0c;安装好mscv2017版本的QT5.9&#xff0c;项目工程选择QT project settings中的Qt Installation为mscv2017版本的QT5.9&#xff0c;编译好提示找不到qtmain.lib 解决思路&#xff1a; 提示找到xxxx.lib&#xff0c;第一库目录不对…...

1688商品列表API与其他数据源的对接思路

将1688商品列表API与其他数据源对接时&#xff0c;需结合业务场景设计数据流转链路&#xff0c;重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点&#xff1a; 一、核心对接场景与目标 商品数据同步 场景&#xff1a;将1688商品信息…...

什么是库存周转?如何用进销存系统提高库存周转率?

你可能听说过这样一句话&#xff1a; “利润不是赚出来的&#xff0c;是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业&#xff0c;很多企业看着销售不错&#xff0c;账上却没钱、利润也不见了&#xff0c;一翻库存才发现&#xff1a; 一堆卖不动的旧货…...

Typeerror: cannot read properties of undefined (reading ‘XXX‘)

最近需要在离线机器上运行软件&#xff0c;所以得把软件用docker打包起来&#xff0c;大部分功能都没问题&#xff0c;出了一个奇怪的事情。同样的代码&#xff0c;在本机上用vscode可以运行起来&#xff0c;但是打包之后在docker里出现了问题。使用的是dialog组件&#xff0c;…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement

Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

Python训练营-Day26-函数专题1:函数定义与参数

题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一个名为 calculate_circle_area 的函数&#xff0c;该函数接收圆的半径 radius 作为参数&#xff0c;并返回圆的面积。圆的面积 π * radius (可以使用 math.pi 作为 π 的值)要求&#xff1a;函数接收一个位置参数 radi…...

C++_哈希表

本篇文章是对C学习的哈希表部分的学习分享 相信一定会对你有所帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、基础概念 1. 哈希核心思想&#xff1a; 哈希函数的作用&#xff1a;通过此函数建立一个Key与存储位置之间的映射关系。理想目标&#xff1a;实现…...