#!/bin/bash # 情绪博物馆微服务开发启动脚本 # 适用于本地开发环境,可以直接看到日志输出 # 作者: emotion-museum # 日期: 2025-07-13 # 颜色定义 RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' PURPLE='\033[0;35m' CYAN='\033[0;36m' NC='\033[0m' # No Color echo -e "${BLUE}==========================================" echo -e "情绪博物馆微服务开发启动脚本" echo -e "适用于本地开发环境 - 实时日志输出" echo -e "==========================================${NC}" # 检查Java环境 if ! command -v java &> /dev/null; then echo -e "${RED}❌ 错误: 未找到Java环境,请安装JDK 17+${NC}" exit 1 fi # 检查Maven环境 if ! command -v mvn &> /dev/null; then echo -e "${RED}❌ 错误: 未找到Maven环境,请安装Maven 3.6+${NC}" exit 1 fi echo -e "${GREEN}✅ Java环境检查通过${NC}" echo -e "${GREEN}✅ Maven环境检查通过${NC}" # 显示菜单 show_menu() { echo "" echo -e "${CYAN}请选择要启动的服务:${NC}" echo -e "${YELLOW}1.${NC} 启动网关服务 (emotion-gateway:9000)" echo -e "${YELLOW}2.${NC} 启动用户服务 (emotion-user:9001)" echo -e "${YELLOW}3.${NC} 启动AI对话服务 (emotion-ai:9002)" echo -e "${YELLOW}4.${NC} 启动情绪记录服务 (emotion-record:9003)" echo -e "${YELLOW}5.${NC} 启动成长课题服务 (emotion-growth:9004)" echo -e "${YELLOW}6.${NC} 启动地图探索服务 (emotion-explore:9005)" echo -e "${YELLOW}7.${NC} 启动成就奖励服务 (emotion-reward:9006)" echo -e "${YELLOW}8.${NC} 启动统计分析服务 (emotion-stats:9007)" echo -e "${YELLOW}9.${NC} 编译所有项目" echo -e "${YELLOW}0.${NC} 退出" echo "" } # 编译项目 compile_project() { echo -e "${BLUE}🔨 开始编译项目...${NC}" mvn clean compile -DskipTests if [ $? -eq 0 ]; then echo -e "${GREEN}✅ 项目编译成功!${NC}" return 0 else echo -e "${RED}❌ 项目编译失败!${NC}" return 1 fi } # 启动单个服务 start_service() { local service_name=$1 local service_port=$2 local service_desc=$3 echo -e "${BLUE}🚀 启动 ${service_desc} (${service_name}:${service_port})...${NC}" echo -e "${YELLOW}💡 提示: 按 Ctrl+C 停止服务${NC}" echo -e "${PURPLE}📋 日志输出开始:${NC}" echo "----------------------------------------" cd $service_name mvn spring-boot:run -Dspring-boot.run.jvmArguments="-Dserver.port=$service_port" cd .. } # 主循环 while true; do show_menu read -p "请输入选择 (0-9): " choice case $choice in 1) start_service "emotion-gateway" 9000 "网关服务" ;; 2) start_service "emotion-user" 9001 "用户服务" ;; 3) start_service "emotion-ai" 9002 "AI对话服务" ;; 4) start_service "emotion-record" 9003 "情绪记录服务" ;; 5) start_service "emotion-growth" 9004 "成长课题服务" ;; 6) start_service "emotion-explore" 9005 "地图探索服务" ;; 7) start_service "emotion-reward" 9006 "成就奖励服务" ;; 8) start_service "emotion-stats" 9007 "统计分析服务" ;; 9) compile_project ;; 0) echo -e "${GREEN}👋 退出开发启动脚本${NC}" exit 0 ;; *) echo -e "${RED}❌ 无效选择,请输入 0-9${NC}" ;; esac echo "" echo -e "${YELLOW}按任意键继续...${NC}" read -n 1 done