目录
背景介绍
前后端分离是目前主流的开发模式,部署的时候也是利用类似nginx实现前后端分离部署,前端代码由nginx直接托管,后端请求通过nginx转发到后端微服务。但在实施部署的时候,不同的客户会有不同的诉求,有些人觉得全部放在一个jar包里面部署的时候简单方便。那么问题就来了,前端是个独立的工程,每次编译后都需要放到后端工程的static目录中,然后后端再进去编译、打包,每次这样操作,比较浪费时间,那么接下来我们要讲的就是通过jdk中的jar命令实现把前端代码打进jar包,前后端开发人员依然继续专注各自的领域和职责,最终在启动脚本中利用jar命令把最新的前端代码更新到jar中即可
简单介绍几个常用的jar命令参数
查询一个文件在jar包中的位置
jar tvf test.jar | grep index.html
将文件解压到当前目录
jar xvf test.jar BOOT-INF/classes/static
可以指定解压jar包中的某一个文件或文件夹
把一个目录打包进jar
jar uvf test.jar BOOT-INF/classes/static
目录的结构必须与jar包的层次结构完全一致
把一个文件打包进jar
jar uvf test.jar BOOT-INF/classes/static/index.html
更新jar的shell脚本update.sh
#!/bin/sh
JAR_NAME=test.jar
# 前端页面位置
DIST_PATH=dist
# 需要更新的jar里面的目录
JAR_UPDATE_DIR=BOOT-INF/classes/static
# 创建目录
mkdir -p $JAR_UPDATE_DIR
# 复制最新前端页面
cp -rf $DIST_PATH/* $JAR_UPDATE_DIR
# 把前端页面更新到jar中
jar uvf $JAR_NAME $JAR_UPDATE_DIR
可以把这段脚本加到启动命令之前,每次启动的时候都会把最新的前端代码更新到jar包中去
命令执行过程部分截图
在执行jar uvf命令时,会输出如下内容