Jenkins自动编译打包前后端分离项目
前提:假如你的后端项目和前端项目都在同一个git仓库

准备工作:配置shell;
点击Manage Jenkins的系统设置,找到shell


然后找到本地安装的git的安装目录,将路径复制过来,像我一样就好

1. 创建Jenkins项目,我是选择自由风格

2.源码管理选择git
输入自己的仓库地址和选择git凭证

3.构建触发器按自己要求选择,我这边选择轮询
意思就是,每天两点钟,你的Jenkins就会去检查git仓库有没有更新;如果有更新,则开启构建。

4.构建步骤思路
在写入构建步骤命令时,我们要先想一下,在我们拉去代码后我们要做些什么:打包、然后启动新的jar包;但如果只做这两步,在下一次构建就会出错,因为我们要执行mvn clean package,如果你的Java应用程序还在运行着,肯定会出错啦。所以我们在打包前,要先关闭Java应用程序。
为了更方便的关闭Java应用程序,我们最好启动时给Java应用程序指定好端口,便于我们关闭。
start /B java -jar yami-shop-admin-0.0.1-SNAPSHOT.jar --server.port=8085 &
其中,start /B是使Java应用程序在后台运行。因为Jenkins在构建完成时会杀死所有衍生进程,为了我们的Java应用程序不被杀死,故使他在后台运行;。
java -jar xxx.jar 是启动一个xxx.jar包;--server.port=8085 是指定端口为8085。
为了下次构建时能够正常的启动Java应用程序,我们要先检测端口有没有被占用,如果有,杀死占用端口的进程。
我们可以先新建一个.txt文件,填入下面的命令,再修改后缀把.txt改为.bat,并把.bat文件放入我们Jenkins项目里。
@echo off setlocal set port=8085 echo 正在检测端口 %port%... netstat -ano | findstr :%port% > nul if %ERRORLEVEL% EQU 0 ( for /f "tokens=5" %%p in ('netstat -ano ^| findstr :%port%') do ( echo 端口 %port% 被占用,进程ID是 %%p,正在尝试结束进程... taskkill /F /PID %%p > nul echo 进程已被结束。 ) ) else ( echo 端口 %port% 未被占用。 )

5.构建步骤之打包
思路有了,我们就可以开始编写构建步骤了。
我们点击添加构建步骤,选择执行shell。
第一步,先检测端口有没有被占用(我的项目需要启动三个,所以我有三个.bat)
cmd.exe /C kill8085.bat cmd.exe /C kill8086.bat cmd.exe /C kill8088.bat
第二步,我们开始打包,我的目录结构是这样的:

我要先进入我的后端项目,再使用mvn打包,所以有了cd mall4j。
cd mall4j
mvn clean package
接下来是我的前端项目打包,我添加了构建步骤,选择执行shell。前端项目的运行需要用到插件"http-serve",所以我先npm install http-serve,再进行前端项目的打包"npm run build"
cd mall4v npm install npm install postcss@latest npm install http-serve npm run build

6.构建步骤之启动
我们要先安装插件"Post build task",再重启jenkins,我们要把启动命令放在构建后进行。
点击增加构建后操作步骤选择Post build task

把启动的命令放在Script里,我需要运行三个,所以就创了三个script

这样我们就实现了自动打包部署。

浙公网安备 33010602011771号