| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #!/usr/bin/env bash
- # ============================================
- # 服务管理中心 - 构建 + 打包 + 运行 一键脚本
- # ============================================
- set -euo pipefail
- SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
- ACTION="${1:-run}"
- # ---------- 颜色 ----------
- RED='\033[0;31m'
- GREEN='\033[0;32m'
- CYAN='\033[0;36m'
- NC='\033[0m'
- info() { echo -e "${CYAN}[INFO]${NC} $*"; }
- ok() { echo -e "${GREEN}[OK]${NC} $*"; }
- err() { echo -e "${RED}[ERROR]${NC} $*" >&2; }
- # ---------- 帮助 ----------
- show_usage() {
- echo ""
- echo " 用法: ./run.sh [命令]"
- echo ""
- echo " 命令:"
- echo " (无参数) 构建前端 + 打包后端 + 启动服务"
- echo " build 仅构建前端 + 打包后端(不启动)"
- echo " run 构建 + 打包 + 启动(同默认行为)"
- echo " clean 清理所有构建产物和运行时数据"
- echo " help 显示此帮助信息"
- echo ""
- exit 0
- }
- case "$ACTION" in
- help|-h|--help) show_usage ;;
- esac
- echo ""
- echo "============================================"
- echo " 服务管理中心 - $ACTION"
- echo "============================================"
- echo ""
- # ---------- 检查环境 ----------
- check_cmd() {
- if ! command -v "$1" &>/dev/null; then
- err "未找到 $1,请确保已安装并加入 PATH"
- exit 1
- fi
- }
- check_cmd java
- check_cmd mvn
- check_cmd node
- # ---------- 清理 ----------
- if [ "$ACTION" = "clean" ]; then
- info "清理前端构建产物..."
- rm -rf "$SCRIPT_DIR/frontend/dist"
- rm -rf "$SCRIPT_DIR/backend/src/main/resources/static"
- info "清理后端构建产物..."
- rm -rf "$SCRIPT_DIR/backend/target"
- info "清理运行时数据..."
- rm -rf "$SCRIPT_DIR/data"
- echo ""
- ok "清理完成"
- exit 0
- fi
- # ---------- 构建前端 ----------
- info "[1/4] 安装前端依赖..."
- cd "$SCRIPT_DIR/frontend"
- npm install --silent 2>/dev/null
- info "[2/4] 构建前端..."
- npx vite build
- info "[3/4] 复制前端产物到后端静态资源目录..."
- rm -rf "$SCRIPT_DIR/backend/src/main/resources/static"
- cp -r "$SCRIPT_DIR/frontend/dist" "$SCRIPT_DIR/backend/src/main/resources/static"
- # ---------- 打包后端 ----------
- info "[4/4] 打包后端 (mvn package)..."
- cd "$SCRIPT_DIR/backend"
- mvn package -DskipTests -q
- echo ""
- ok "构建打包完成!"
- echo ""
- if [ "$ACTION" = "build" ]; then
- echo "提示: 使用 ./run.sh run 启动服务"
- exit 0
- fi
- # ---------- 运行 ----------
- echo "----------------------------------------"
- echo " 启动服务 (端口 3945)"
- echo " 访问 http://localhost:3945"
- echo " 按 Ctrl+C 停止"
- echo "----------------------------------------"
- echo ""
- cd "$SCRIPT_DIR/backend"
- exec java -jar target/service-management-1.0.0.jar
|