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

Jenkins自动化部署前后端分离项目 (svn + Springboot + Vue + maven)有图详解

1. 准备工作

本文的前后端分离项目,技术框架是:
Springboot + Vue + Maven + SVN + Redis + Mysql + Nginx + JDK
所以首先需要安装以下:

在腾讯云服务器OpenCLoudOS系统中安装jdk(有图详解)

在腾讯云服务器OpenCLoudOS系统中安装mysql(有图详解)

在腾讯云服务器OpenCLoudOS系统中安装nginx(有图详解)

在腾讯云服务器OpenCLoudOS系统中安装redis(有图详解)

在腾讯云服务器OpenCLoudOS系统中安装svn(有图详解)

在腾讯云服务器OpenCLoudOS系统中安装maven(有图详解)

在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)

用svn上传前后端代码参考:

用svn上传idea和webstorm代码(有图详解)

2. 全局工具配置

登录Jenkins,在上篇文章中讲过

在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)

自己服务器的IP+端口

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

maven配置如下:

在这里插入图片描述
文中画框的地方,就是上篇文章中的maven安装地址

在腾讯云服务器OpenCLoudOS系统中安装maven(有图详解)

JDK配置如下:

在这里插入图片描述
上文中的路径,就是服务器中jdk的安装路径,文章在腾讯云服务器OpenCLoudOS系统中安装jdk(有图详解)中有讲过

也可以 echo $JAVA_HOME找出

在这里插入图片描述

maven地址配置:

在这里插入图片描述

3. 插件安装

在这里插入图片描述
安装Public over SSH

Public over SSH: jenkins远程服务器发送文件,此插件作用是将svn上的代码自动打包部署到其他服务器上去

在这里插入图片描述
在这里插入图片描述

配置Publish Over SSH

在这里插入图片描述
拉到最底下,新增

在这里插入图片描述
在这里插入图片描述

备注:
这里的Remote Directory也可以不写,为空。因为新建的项目中也有配置jar上传的路径

不然两个地方到时候都配置了,maven打包生成的jar放置的路径就会叠加

配置目标主机密码并测试连接:
在这里插入图片描述
点击运用、保存
在这里插入图片描述
安装SVN:

在这里插入图片描述
在这里插入图片描述

每次安装完插件,可能不会生效,所以需要重启Jenkins

具体重启方法和重启路径请看这篇文章:
在腾讯云服务器OpenCLoudOS系统中安装Jenkins(有图详解)

cd /etc/init.d./jenkins stop./jenkins start

在这里插入图片描述

4. 部署SpringBoot后端项目

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
选择你刚刚添加的svn用户:

在这里插入图片描述

增加构建步骤:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

增加构建后操作步骤:
在这里插入图片描述
在这里插入图片描述

Source files:源文件。就是maven打包后生成的哪个文件要打包到目标服务器

Remove prefix:移除前缀。因为maven打包后,会有几层文件夹,我们只需要把要部署的jar之前的文件夹都删除即可

Remote directory:远程文件夹。maven打包后形成的jar要部署到哪个路径下

Exec command:部署包jar文件到了目标路径下后,需要启动的shell脚本

参考:
对于maven有多个子工程的,本地maven打包后,形成的jar文件是这个:

在这里插入图片描述
fabricate-admin.jar
这个jar就是我们要部署到目标服务器并要启动文件fabricate.sh启动的jar
在这里插入图片描述

把jar启动文件上传至该路径下:
在这里插入图片描述
给文件夹赋权:

chmod -R 777 /usr/local/nginx/fabricate/

这里赋权两个作用:

  1. 给文件夹赋权,自动化部署时,生成的jar文件可以通过SSH传输到这边,不赋权读写权限的话,到时候写不进来
  2. 给fabricate.sh赋予启动权限,jar文件传输过来,可以启动这shell脚本
    在这里插入图片描述

启动文件如下:

export JAVA_HOME PATH CLASSPATH
JAVA_HOME=/app/soft/jdk/jdk1.8.0_341 #你自己的jdk路径
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$CLASSPATH
APP_HOME=`pwd`
AppName=fabricate-admin.jar  #你自己的部署包jar的名字
echo "  =====关闭Java应用======"
PROCESS=`ps -ef |grep java |grep -v grep|grep $APP_HOME/$AppName|awk '{print $2}'`
for i in $PROCESS
doecho "Kill the $1 process [ $i ]"kill -9 $i
done
echo "  =====启动Java应用======"
nohup JAVA_HOME/bin/java -jar $APP_HOME/$AppName  > $APP_HOME/$AppName.log 2>&1 & 
echo $! > savePid.txt
cat savePid.txt
rm  savePid.txt

保存:

在这里插入图片描述

点击构建:

在这里插入图片描述
可看控制台日志:

在这里插入图片描述
在这里插入图片描述

如果构建失败,可以从控制台日志看错误信息,以下三个步骤也可排查:

自动化部署有三步:

1. svn下载代码到workspace,并用maven打包形成target文件夹,底下有项目部署包jar

一般默认的工作空是**/var/lib/jenkins/workspace**

在这个路径下看自己的代码是否通过svn下载到了工作空间
在这里插入图片描述
代码路径下是否经过了maven打包形成target文件夹,产生部署包jar
在这里插入图片描述

2. 推送jar到目标路径

可观察上一步产生的jar,有没有推过来
在这里插入图片描述
这个就是你配置的推送SSH的jar部署路径
在这里插入图片描述

3. 启动shell脚本

只需观察上文启动脚本中的输出日志文件是否实时生成:

在这里插入图片描述
out.log日志文件生成
在这里插入图片描述

5. 部署vue前端项目

相关文章:

Jenkins自动化部署前后端分离项目 (svn + Springboot + Vue + maven)有图详解

1. 准备工作 本文的前后端分离项目,技术框架是: Springboot Vue Maven SVN Redis Mysql Nginx JDK 所以首先需要安装以下: 在腾讯云服务器OpenCLoudOS系统中安装jdk(有图详解) 在腾讯云服务器OpenCLoudOS系统…...

【ELK】日志系统部署

一、ELK日志分析系统 1、ELK的组成 ElasticSearchLogStashKibana ELK基于这三个开源日志的收集、存储、检索和可视化的解决方案;可帮助用户快速定位和分析应用程序的故障,监控应用程序性能和安全,以及提供丰富的数据分析和展示功能。 2、完…...

【算法挨揍日记】day08——30. 串联所有单词的子串、76. 最小覆盖子串

30. 串联所有单词的子串 30. 串联所有单词的子串 题目描述: 给定一个字符串 s 和一个字符串数组 words。 words 中所有字符串 长度相同。 s 中的 串联子串 是指一个包含 words 中所有字符串以任意顺序排列连接起来的子串。 例如,如果 words ["…...

SpringCloud Gateway--网关服务基本介绍和基本原理

😀前言 本篇博文是关于SpringCloud Gateway的基本介绍,希望你能够喜欢 🏠个人主页:晨犀主页 🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力…...

使用Vue-cli构建spa项目及结构解析

一,Vue-cli是什么? 是一个官方发布的Vue脚手架工具,用于快速搭建Vue项目结构,提供了现代前端开发所需要的一些基础功能,例如:Webpack打包、ESLint语法检查、单元测试、自动化部署等等。同时,Vu…...

自定义Unity组件——AudioManager(音频管理器)

需求描述 在游戏开发中,音频资源是不可或缺的,通常情况下音频资源随机分布,各个音频的操作和管理都是各自负责,同时对于音频的很多操作逻辑都是大同小异的,这就造成了许多冗余代码的堆叠,除此之外在获取各类…...

leetcode 558 设计内存文件系统

题目 Design an in-memory file system to simulate the following functions: ls: Given a path in string format. If it is a file path, return a list that only contains this files name. If it is a directory path, return the list of file and directory namesin th…...

Haproxy负载均衡群集

HAproxy搭建Web群集一、Web集群调度器1、常见的Web集群调度器2、常用集群调度器的优缺点(LVS ,Nginx,Haproxy)2.1 Nginx2.2 LVS2.3 Haproxy 3、LVS、Nginx、HAproxy的区别 二、Haproxy1、简介2、Haproxy应用分析3、HAProxy的主要特性4、Haproxy调度算法(…...

什么是面包屑导航?

面包屑导航(Breadcrumb Navigation)这个概念来自童话故事“汉赛尔和格莱特”,当汉赛尔和格莱特穿过森林时,不小心迷路了,但是他们发现沿途走过的地方都撒下了面包屑,让这些面包屑来帮助他们找到回家的路。 在网站应用中&#xff0…...

VS2019创建GIt仓库时剔除文件或目录

假设本地有解决方案“SomeSolution” 1、首先”团队资源管理器“-“创建Git存储库”,选择“仅限本地”、“创建” VS会在解决方案目录下自动生成.gitattributes、.gitignore 2、编辑gitignore,直接拖到VS里或者用记事本打开。添加要剔除的文件或文件夹…...

计算机等级考试—信息安全三级真题六

目录 一、单选题 二、填空题 三、综合题 一、单选题...

vue循环滚动字幕

在Vue.js中创建一个循环滚动字幕的效果通常需要使用一些CSS和JavaScript来实现。以下是一个简单的示例,展示如何使用Vue.js创建一个循环滚动字幕的效果: 首先,在HTML中创建一个Vue实例,并添加一个包含滚动字幕的容器元素&#xff…...

扩展pytest接口自动化框架-MS数据解析功能

【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】 开篇 MeterSphere的数据源通过html页面上传后,需要将请求方式进行拆分。 get接口的参数,常以params的方式进行传…...

docker容器安装MongoDB数据库

一:MongoDB数据库 1.1 简介 MongoDB是一个开源、高性能、无模式的文档型数据库,当初的设计就是用于简化开发和方便扩展,是NoSQL数据库产品中的一种。是最 像关系型数据库(MySQL)的非关系型数据库。 它支持的数据结构…...

Python机器学习实战-特征重要性分析方法(3):迭代删除法:Leave-one-out(附源码和实现效果)

实现功能 迭代地每次删除一个特征并评估准确性 实现代码 from sklearn.datasets import load_breast_cancer from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier from sklearn.metrics import accuracy_score impo…...

Go的error接口

从本书的开始,我们就已经创建和使用过神秘的预定义error类型,而且没有解释它究竟是什么。实际上它就是interface类型,这个类型有一个返回错误信息的单一方法: type error interface { Error() string } 创建一个error最简单的方…...

RabbitMQ 集群 - 普通集群、镜像集群、仲裁队列

目录 一、RabbitMQ 集群 1.1、前言 1.2、普通集群 1.3、镜像集群 1.4、仲裁队列 一、RabbitMQ 集群 1.1、前言 前面我们已经解决了消息可靠性问题,以及延迟消息问题 和 消息堆积问题. 这最后一章,我们就来解决以下 mq 的可用性 和 并发能力. 1.2、…...

高项新版教程(第四版)解读+学习指导

第四版主要内容 技术部分 信息化教程、软件工程、网络技术是原来的,学习原来的录播。 新基建、工业互联网、车联网、农业现代化、数字化转型、元宇宙等是新增,以直播讲。 管理部分 变化不是太大 。 整合管理、人力变为资源管理、风险管理新增内容。 …...

【Debian】Debian10.0.0安装选项问答

debian的LXQT是什么? LXQT是一套轻量级的桌面环境,主要基于Qt框架开发。 LXQT在debian中的具体特点包括: - 使用Openbox作为窗口管理器,提供平铺式窗口布局。 - 文件管理器为PCManFM-Qt。 - 设置中心集成 debconf 配置界面。 - 支持GTK和Qt应用程序。 - 资源消耗较低…...

【基于React-Native做位置信息获取,并展示出来】

基于React-Native做位置信息获取 在这个里面最重要的是两个部分&#xff0c;一个是位置定位的权限获取&#xff0c;一个是实时位置的监听&#xff0c;在安卓项目中&#xff0c;在 android/app/src/main/AndroidManifest.xml该文件下&#xff0c;在< manifest > 标签内写…...

如何利用APOC插件提升Neo4J的数据处理能力?实战配置指南

如何利用APOC插件释放Neo4J的隐藏潜能&#xff1f;高阶实战手册 当你已经熟练使用Cypher进行常规图数据查询时&#xff0c;是否遇到过这些瓶颈&#xff1f;需要批量处理百万级节点关系却找不到高效方法&#xff1b;想实现复杂图算法但原生函数库不支持&#xff1b;数据导入导出…...

PyFluent:重新定义CFD仿真的Python原生接口解决方案

PyFluent&#xff1a;重新定义CFD仿真的Python原生接口解决方案 【免费下载链接】pyfluent Pythonic interface to Ansys Fluent 项目地址: https://gitcode.com/gh_mirrors/pyf/pyfluent PyFluent作为Ansys Fluent的Python原生接口&#xff0c;代表了计算流体动力学&am…...

如何在VSCode安装stm32的开发环境

第一步先安装VSCode和STM32CubeMX;第二步在Vscode中安装插件1&#xff1a;chinese2&#xff1a;STM32Cube for Visual Studio Code第三步在STM32CubeMX生成代码&#xff0c;先进行调试接口配置&#xff0c;Serial Wire是stlink调试&#xff1b;再生成代码界面选择cmake和GCC&am…...

java+vue+SpringBoot企业信息管理系统(程序+数据库+报告+部署教程+答辩指导)

源代码数据库LW文档&#xff08;1万字以上&#xff09;开题报告答辩稿ppt部署教程代码讲解代码时间修改工具 技术实现 开发语言&#xff1a;后端&#xff1a;Java 前端&#xff1a;vue框架&#xff1a;springboot数据库&#xff1a;mysql 开发工具 JDK版本&#xff1a;JDK1.8 数…...

HunyuanVideo-Foley部署教程:vSphere虚拟机中GPU直通RTX4090D配置指南

HunyuanVideo-Foley部署教程&#xff1a;vSphere虚拟机中GPU直通RTX4090D配置指南 1. 环境准备与硬件要求 1.1 硬件配置清单 显卡&#xff1a;RTX 4090D 24GB显存&#xff08;必须&#xff09;CPU&#xff1a;10核及以上&#xff08;推荐Intel Xeon或AMD EPYC&#xff09;内…...

数据科学好帮手:OpenClaw+千问3.5-35B-A3B-FP8自动化报表分析与可视化

数据科学好帮手&#xff1a;OpenClaw千问3.5-35B-A3B-FP8自动化报表分析与可视化 1. 为什么需要自动化数据分析 作为一名经常与数据打交道的分析师&#xff0c;我每天要处理大量重复性工作&#xff1a;清洗CSV文件、检查异常值、生成趋势图表、编写分析报告。这些工作占用了7…...

Visual C++ Redistributable AIO:一站式解决Windows程序运行问题的终极指南

Visual C Redistributable AIO&#xff1a;一站式解决Windows程序运行问题的终极指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 你是否曾经遇到过打开游戏或…...

GLM-4-9B-Chat-1M镜像升级路径:从GLM-4-9B-Chat到1M版本的权重转换与验证

GLM-4-9B-Chat-1M镜像升级路径&#xff1a;从GLM-4-9B-Chat到1M版本的权重转换与验证 如果你正在使用GLM-4-9B-Chat模型&#xff0c;并且被它128K的上下文长度所吸引&#xff0c;那么现在有个好消息&#xff1a;它的“超级加强版”来了。GLM-4-9B-Chat-1M版本&#xff0c;直接…...

MTKClient深度应用指南:联发科设备底层调试与系统修复全解析

MTKClient深度应用指南&#xff1a;联发科设备底层调试与系统修复全解析 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient 问题诊断&#xff1a;联发科设备典型故障与解决方案 识别设备无法…...

BetterGI原神智能辅助工具完整教程:5大核心功能快速上手

BetterGI原神智能辅助工具完整教程&#xff1a;5大核心功能快速上手 【免费下载链接】better-genshin-impact &#x1f4e6;BetterGI 更好的原神 - 自动拾取 | 自动剧情 | 全自动钓鱼(AI) | 全自动七圣召唤 | 自动伐木 | 自动刷本 | 自动采集/挖矿/锄地 | 一条龙 | 全连音游 -…...