deploy.sh 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/bin/bash
  2. # ============================================
  3. # Snapshot 一体化部署脚本 (Linux/Mac)
  4. # ============================================
  5. set -e # 遇到错误立即退出
  6. # 颜色定义
  7. RED='\033[0;31m'
  8. GREEN='\033[0;32m'
  9. YELLOW='\033[1;33m'
  10. BLUE='\033[0;34m'
  11. NC='\033[0m' # No Color
  12. # 设置项目根目录
  13. PROJECT_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
  14. FRONTEND_DIR="$PROJECT_ROOT/frontend"
  15. BACKEND_DIR="$PROJECT_ROOT/backend"
  16. STATIC_TARGET="$BACKEND_DIR/src/main/resources/static"
  17. echo -e "${BLUE}============================================${NC}"
  18. echo -e "${BLUE}Snapshot 一体化部署脚本${NC}"
  19. echo -e "${BLUE}============================================${NC}"
  20. echo ""
  21. echo "项目根目录: $PROJECT_ROOT"
  22. echo "前端目录: $FRONTEND_DIR"
  23. echo "后端目录: $BACKEND_DIR"
  24. echo "静态资源目标: $STATIC_TARGET"
  25. echo ""
  26. # 步骤1: 构建前端
  27. echo -e "${YELLOW}[1/4] 构建前端...${NC}"
  28. cd "$FRONTEND_DIR"
  29. npm install
  30. npm run build
  31. echo -e "${GREEN}前端构建完成${NC}"
  32. echo ""
  33. # 步骤2: 清理旧的静态资源
  34. echo -e "${YELLOW}[2/4] 清理旧的静态资源...${NC}"
  35. rm -rf "$STATIC_TARGET"
  36. mkdir -p "$STATIC_TARGET"
  37. echo -e "${GREEN}静态资源目录已清理${NC}"
  38. echo ""
  39. # 步骤3: 复制前端构建产物到后端
  40. echo -e "${YELLOW}[3/4] 复制前端文件到后端静态资源目录...${NC}"
  41. cp -r "$FRONTEND_DIR/dist/"* "$STATIC_TARGET/"
  42. echo -e "${GREEN}前端文件已复制到 $STATIC_TARGET${NC}"
  43. echo ""
  44. # 步骤4: 构建后端
  45. echo -e "${YELLOW}[4/4] 构建后端 JAR...${NC}"
  46. cd "$BACKEND_DIR"
  47. mvn clean package -DskipTests
  48. echo -e "${GREEN}后端构建完成${NC}"
  49. echo ""
  50. echo -e "${BLUE}============================================${NC}"
  51. echo -e "${GREEN} 部署完成!${NC}"
  52. echo -e "${BLUE}============================================${NC}"
  53. echo ""
  54. echo "JAR 文件: $BACKEND_DIR/target/snapshot-backend-1.0.0.jar"
  55. echo ""
  56. echo "启动命令:"
  57. echo " java -jar $BACKEND_DIR/target/snapshot-backend-1.0.0.jar"
  58. echo ""
  59. echo "或使用以下命令直接启动:"
  60. echo " cd $BACKEND_DIR && mvn spring-boot:run"
  61. echo -e "${BLUE}============================================${NC}"