当前位置: 首页 > 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前端项目

http://www.lryc.cn/news/175020.html

相关文章:

  • 【ELK】日志系统部署
  • 【算法挨揍日记】day08——30. 串联所有单词的子串、76. 最小覆盖子串
  • SpringCloud Gateway--网关服务基本介绍和基本原理
  • 使用Vue-cli构建spa项目及结构解析
  • 自定义Unity组件——AudioManager(音频管理器)
  • leetcode 558 设计内存文件系统
  • Haproxy负载均衡群集
  • 什么是面包屑导航?
  • VS2019创建GIt仓库时剔除文件或目录
  • 计算机等级考试—信息安全三级真题六
  • vue循环滚动字幕
  • 扩展pytest接口自动化框架-MS数据解析功能
  • docker容器安装MongoDB数据库
  • Python机器学习实战-特征重要性分析方法(3):迭代删除法:Leave-one-out(附源码和实现效果)
  • Go的error接口
  • RabbitMQ 集群 - 普通集群、镜像集群、仲裁队列
  • 高项新版教程(第四版)解读+学习指导
  • 【Debian】Debian10.0.0安装选项问答
  • 【基于React-Native做位置信息获取,并展示出来】
  • ansible安装、点对点Ad-Hoc、模块、剧本Playbook
  • Ceph入门到精通-ceph pool 删除导致 misplaced 的原因
  • 计算机组成原理课程设计
  • 《从菜鸟到大师之路 MySQL 篇》
  • 使用qt完善对话框功能
  • Day 03 python学习笔记
  • 优化类问题概述
  • 第一个 Go 程序“hello,world“ 与 main 函数
  • MySQL缓冲池Buffer Pool
  • springboot实现发送邮箱验证码
  • ESP8266使用记录(三)