Files
happy-life-star/backend/dev-start.sh
T

130 lines
3.7 KiB
Bash
Executable File

#!/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