在Jenkins中实现Spring Boot和Vue项目的自动化部署,通常涉及一系列步骤,包括源码获取、构建、测试和部署。
目录
2.3. 配置构建(注意nginx需要提前配置,文件夹需要创建)
2.3.9.删除项目依赖包和公司平台包(时刻更新平台最新,防止本地和线上依赖不同)
2.3.11.备份springboot项目 Post Steps(有几个springboot项目就备份几个springboot项目)
2.3.12.构建后的操作 Send build artifacts over SSH
1. 前提条件
- Jenkins服务器:已安装并运行Jenkins。
- Git仓库:包含Spring Boot和Vue.js项目的源代码。
- 构建工具:Maven用于Spring Boot项目,Node.js和npm/yarn用于Vue.js项目。
- 部署环境:如服务器或容器环境(Docker、Kubernetes等)已准备好。
2. Jenkins部署流程
2.1. 安装所需插件:
- Git插件
- Maven插件
- Node.js插件(如果Jenkins服务器上没有预装)
- 部署插件(如Publish Over SSH、Deploy to Container等,根据部署环境选择)
2.2. 新建项目
前端项目路径 demo\source\client\gkbim
后端项目路径 demo\source\server\gkbim
后端打包zip 方便更改配置文件(打包zip 请看 将spring boot项目成jar包,并把配置文件等放在jar包外部_springboot把配置文件都放到jar外-CSDN博客)
增加一个start.sh
#!/bin/bash
ps -ef | grep demo-eureka | grep -v grep | awk '{print $2}' | xargs kill -9
echo "start project"
export JAVA_HOME=/usr/local/java/jdk1.8.0_181
echo "use java at $JAVA_HOME"
source /etc/profile
nohup java -jar demo-eureka-1.0.jar >/dev/null 2>&1 &
echo "started project"
2.3. 配置构建(注意nginx需要提前配置,文件夹需要创建)
2.3.1. 新建一个maven任务
2.3.2. 添加git项目地址及账号
保存记录的天数及个数,防止构建多次后占满磁盘
添加git项目地址及账号
2.3.3.添加pre step 构建项目前的步骤
2.3.4.先打包vue项目
2.3.5.安装依赖
#!/bin/bash
cd source/client/demo
npm install
2.3.6.打包vue
#!/bin/bash
cd source/client/demo
npm run build
2.3.7.压缩打包后的文件
#!/bin/bash
cd source/client/demo/dist
tar czvf dist.tar.gz *
或者
#!/bin/bash
echo "压缩"
cd source/client/demo/dist
zip -r dist.zip *
2.3.8.备份vue
#!/bin/bash
cd source/client/demo/dist
datename=$(date +%Y%m%d%H)
if [ ! -d "/home/demoBack/$datename" ];then
mkdir /home/demoBack/$datename
fi
cp -rf dist.tar.gz /home/demoBack/$datename/dist.tar.gz
2.3.9.删除项目依赖包和公司平台包(时刻更新平台最新,防止本地和线上依赖不同)
#!/bin/bash
echo "删除jar仓库包开始"
rm -rf /usr/local/maven/repository/com/平台包
rm -rf /usr/local/maven/repository/com/demo
echo "删除jar仓库包结束"
2.3.10.Build 构建maven项目
source/server/demo/pom.xml
clean install -Dmaven.test.skip=true
2.3.11.备份springboot项目 Post Steps(有几个springboot项目就备份几个springboot项目)
#!/bin/bash
cd source/server/demo/demo-eureka/target/
datename=$(date +%Y%m%d%H)
if [ ! -d "/home/demoBack/$datename" ];then
mkdir /home/demoBack/$datename
fi
cp -rf demo-eureka-1.0-package.zip /home/demoBack/$datename/demo-eureka-1.0-package.zip
2.3.12.构建后的操作 Send build artifacts over SSH
前端部署
Source files:
source/client/demo/dist/*.tar.gz
Remove prefix:
source/client/demo/dist/
Remote directory:(前端nginx服务的路径)
/opt/demo/html
Exec command:
cd /opt/demo/html
tar -zxvf dist.tar.gz
sprinboot 部署
Source files:
source/server/demo/demo-eureka/targe/*.zip
Remove prefix:
source/server/demo/demo-eureka/targe/
Remote directory:(后端项目执行的存放路径)
/opt/demo/demojar
Exec command:
#!/bin/bash
cd /opt/demo/demojar
unzip -o demo-eureka-1.0-package.zip -d demo-eureka
cd /opt/demo/demojar/demo-eureka
sed -i 's/\r$//' start.sh
chmod 777 start.sh
if [ ! -d "/opt/demo/demojar/demo-eureka-1.0-package.zip" ];then
rm -rf /opt/demo/demojar/demo-eureka-1.0-package.zip
fi
sh start.sh