#!/bin/bash # ==================================================== # 工作日志服务平台 - 全量打包脚本 # ==================================================== set -e SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)" DEPLOY_DIR="${PROJECT_ROOT}/deploy" # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color echo -e "${BLUE}=========================================${NC}" echo -e "${BLUE}工作日志服务平台 - 全量打包${NC}" echo -e "${BLUE}=========================================${NC}" # 清理 deploy 目录下的旧构建产物 echo -e "${YELLOW}清理旧构建产物...${NC}" rm -rf ${DEPLOY_DIR}/worklog-api rm -rf ${DEPLOY_DIR}/worklog-api.tar.gz rm -rf ${DEPLOY_DIR}/wladmin rm -rf ${DEPLOY_DIR}/wlmobile # 1. 打包后端 API echo "" echo -e "${GREEN}[1/3] 打包后端 API...${NC}" cd "${PROJECT_ROOT}/worklog-api" mvn clean package -DskipTests -q # 检查后端打包结果 if [ ! -f "${DEPLOY_DIR}/worklog-api.tar.gz" ]; then echo -e "${RED}ERROR: 后端打包失败${NC}" exit 1 fi API_SIZE=$(du -sh ${DEPLOY_DIR}/worklog-api.tar.gz | cut -f1) echo -e "${GREEN}后端打包完成: ${API_SIZE}${NC}" # 2. 打包管理后台前端 echo "" echo -e "${GREEN}[2/3] 打包管理后台前端...${NC}" "${SCRIPT_DIR}/build-web.sh" # 部署到 deploy 目录 mkdir -p ${DEPLOY_DIR}/wladmin cp -r ${PROJECT_ROOT}/worklog-web/dist/* ${DEPLOY_DIR}/wladmin/ WEB_SIZE=$(du -sh ${DEPLOY_DIR}/wladmin | cut -f1) echo -e "${GREEN}管理后台打包完成: ${WEB_SIZE}${NC}" # 3. 打包移动端 H5 echo "" echo -e "${GREEN}[3/3] 打包移动端H5前端...${NC}" "${SCRIPT_DIR}/build-mobile.sh" # 部署到 deploy 目录 mkdir -p ${DEPLOY_DIR}/wlmobile cp -r ${PROJECT_ROOT}/worklog-mobile/dist/* ${DEPLOY_DIR}/wlmobile/ MOBILE_SIZE=$(du -sh ${DEPLOY_DIR}/wlmobile | cut -f1) echo -e "${GREEN}移动端H5打包完成: ${MOBILE_SIZE}${NC}" # 输出汇总 echo "" echo -e "${GREEN}=========================================${NC}" echo -e "${GREEN}全量打包完成!${NC}" echo -e "${GREEN}=========================================${NC}" echo -e "输出目录: ${DEPLOY_DIR}/" echo "" echo -e "产物列表:" echo -e " - worklog-api.tar.gz (${API_SIZE})" echo -e " - wladmin/ (${WEB_SIZE})" echo -e " - wlmobile/ (${MOBILE_SIZE})" echo "" echo -e "部署命令示例:" echo -e " scp ${DEPLOY_DIR}/worklog-api.tar.gz user@server:/opt/worklog/" echo -e " scp -r ${DEPLOY_DIR}/wladmin user@server:/var/www/worklog/" echo -e " scp -r ${DEPLOY_DIR}/wlmobile user@server:/var/www/worklog/"