Files
integral-shop/backend/DEPLOY.md
apple 079076a70e miao33: 从 main 同步 single_uniapp22miao,dart-sass 兼容修复,DEPLOY.md 更新
- 从 main 获取 single_uniapp22miao 子项目
- dart-sass: /deep/ -> ::v-deep,calc 运算符加空格
- DEPLOY.md 采用 shccd159 版本(4 子项目架构说明)

Made-with: Cursor
2026-03-16 11:16:42 +08:00

5.6 KiB
Raw Blame History

打包与部署说明

本文档说明项目的 4 个子项目 如何单独或组合打包部署。2 个 jar 包 分别对应 2 个前端,可独立执行编译、打包、部署。


一、架构概览

2 个 jar 包 ↔ 2 个前端

jar 包 对应前端 说明
miao-admin-2.2.jar frontendadmin 后台 Vue 管理后台 API + 后台静态站点
miao-front-2.2.jar single_uniapp22miao(用户端 H5/uni-app 积分商城、用户端 API

4 个子项目(可单独打包部署)

子项目 产出 打包命令 说明
crmeb-admin miao-admin-2.2.jar mvn clean package -pl crmeb-admin -am -DskipTests 管理后台后端
crmeb-front miao-front-2.2.jar mvn clean package -pl crmeb-front -am -DskipTests 用户端 API
frontend frontend/dist npm run build:prod 管理后台前端静态
single_uniapp22miao single_uniapp22miao/unpackage/dist/build/h5 npm run build:h5 用户端 H5 静态

二、部署配置deploy.conf

配置位于 backend/deploy.conf按段落区分环境by80、miao50、shjjy153 等)。

通用变量

变量 说明 示例
SERVER_HOST 服务器 IP 123.56.214.80
SERVER_USER SSH 用户 root
SERVER_PORT SSH 端口 22
REMOTE_DIR_JAR jar 上传目录(两个 jar 可同目录) /www/wwwroot/crmeb
REMOTE_DIR_ADMIN admin 后台静态站点目录 /www/wwwroot/jfadmin.bosenyuan.com
REMOTE_DIR_FRONT 用户端 H5 静态站点目录(部分环境有) /www/wwwroot/jjy-jf.fwxgpt.com
FRONT_JAR_NAME 用户端 jar 文件名 miao-front-2.2.jar
ADMIN_JAR_NAME 管理后台 jar 文件名 miao-admin-2.2.jar
FRONT_LOCAL_PORT 用户端 API 端口 30031
ADMIN_LOCAL_PORT 管理后台 API 端口 30032

环境示例deploy.conf

  • by80REMOTE_DIR_JARREMOTE_DIR_ADMINprofile=miao80
  • miao50REMOTE_DIRjar 目录profile=miao50
  • shjjy153REMOTE_DIR_JARREMOTE_DIR_ADMINREMOTE_DIR_FRONTprofile=shjjy153

三、单独打包4 个子项目)

1. 仅打包 crmeb-adminmiao-admin-2.2.jar

cd backend
mvn clean package -pl crmeb-admin -am -DskipTests
# 产出backend/crmeb-admin/target/miao-admin-2.2.jar

2. 仅打包 crmeb-frontmiao-front-2.2.jar

cd backend
mvn clean package -pl crmeb-front -am -DskipTests
# 产出backend/crmeb-front/target/miao-front-2.2.jar

3. 仅打包 admin 后台前端frontend

cd frontend
export NODE_OPTIONS="${NODE_OPTIONS:-} --openssl-legacy-provider"   # Node 17+ 需要
npm run build:prod
# 产出frontend/dist

4. 仅打包用户端 H5 前端single_uniapp22miao

cd single_uniapp22miao
npm run build:h5
# 产出single_uniapp22miao/unpackage/dist/build/h5

四、单独启动(本机)

启动 miao-admin管理后台 API

cd backend
nohup java -jar crmeb-admin/target/miao-admin-2.2.jar \
  --spring.profiles.active=miao80 \
  --server.port=30032 > admin.log 2>&1 &

启动 miao-front用户端 API

cd backend
./shell/start-front-miao33.sh   # 使用 miao33 配置,端口 30031
# 或指定 profile
nohup java -jar crmeb-front/target/miao-front-2.2.jar \
  --spring.profiles.active=miao33 > front-miao33.log 2>&1 &

五、by80 环境一键部署admin 后台)

部署目标:miao-admin-2.2.jar + admin 后台静态,上传到 by80 配置的服务器。

1. 配置 SSH 免密(一次性)

ssh-copy-id -i ~/.ssh/id_ed25519_crmeb_deploy.pub root@123.56.214.80

2. 执行部署脚本

cd backend
./shell/deploy-admin-by80.sh

使用其他密钥:SSH_IDENTITY=~/.ssh/你的私钥 ./shell/deploy-admin-by80.sh

3. 脚本执行步骤

步骤 说明
1 编译 crmeb-admin生成 miao-admin-2.2.jar
2 编译 frontend生成 dist
3 远程备份原有 jar 与后台静态
4 上传 miao-admin-2.2.jar 到 REMOTE_DIR_JAR
5 上传 frontend/dist 到 REMOTE_DIR_ADMIN
6 远程重启 admin 服务profile=miao80, port=30032

六、其他环境

  • miao50:使用 ./shell/deploy-admin-miao50.sh,逻辑类似,配置来自 deploy.conf 中 miao50 段。
  • shjjy153deploy.conf 中配置了 REMOTE_DIR_FRONT,可扩展脚本上传 single_uniapp22miao 的 H5 构建产物到该目录。

七、远程服务器手动重启

重启 adminmiao-admin-2.2.jar

ssh root@<SERVER_HOST>
cd /www/wwwroot/crmeb   # 或 REMOTE_DIR_JAR
pkill -f miao-admin-2.2.jar || true
sleep 2
nohup java -Xms128m -Xmx200m -jar miao-admin-2.2.jar --spring.profiles.active=miao80 --server.port=30032 > admin.log 2>&1 &
pgrep -f miao-admin-2.2.jar && echo "Admin 已启动"

重启 frontmiao-front-2.2.jar

ssh root@<SERVER_HOST>
cd /www/wwwroot/crmeb   # 或 REMOTE_DIR_JAR
pkill -f miao-front-2.2.jar || true
sleep 2
nohup java -Xms128m -Xmx200m -jar miao-front-2.2.jar --spring.profiles.active=miao33 --server.port=30031 > front.log 2>&1 &
pgrep -f miao-front-2.2.jar && echo "Front 已启动"

八、故障排查

  • SSH Permission denied:检查 ssh-copy-id 是否成功,或指定正确 SSH_IDENTITY
  • 前端构建 OpenSSL 报错:设置 export NODE_OPTIONS="--openssl-legacy-provider"
  • jar 未启动SSH 登录查看对应 log 文件及 pgrep -f <jar名>