jmalcloud/STARTUP_GUIDE.md
lanmus d5f11e43bd 🚀 完善前后端启动脚本和文档
✨ 新增启动脚本:
- start-full-project.sh: 完整的前后端启动脚本,含环境检查
- dev-start.sh: 开发环境快速启动脚本
- stop-full-project.sh: 停止所有服务的脚本

📖 新增文档:
- STARTUP_GUIDE.md: 详细的启动指南和故障排除
- 更新 README.md: 添加项目结构说明和启动脚本介绍

🔧 功能特点:
- ✅ 自动环境检查(Java、Node.js、MongoDB)
- ✅ 智能进程管理和端口清理
- ✅ 详细的启动日志和状态检查
- ✅ 交互式和静默启动模式
- ✅ 完整的故障排除指南

🎯 适配新项目结构:
- 后端:项目根目录 (Spring Boot)
- 前端:frontend/ 子目录 (Vue.js)
- 一键启动完整的前后端开发环境

📋 三种启动方式:
1. dev-start.sh - 开发快速启动 ⭐ 推荐
2. start-full-project.sh - 完整启动检查
3. 手动分别启动 - 调试使用

现在开发者只需一个命令即可启动完整的前后端开发环境!
2025-08-24 12:19:47 +08:00

223 lines
4.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 🚀 JmalCloud 前后端启动指南
> 完整的前后端集成项目启动说明
## 📋 项目结构确认
### ✅ 前后端代码完整性检查
**后端代码** (根目录):
- ✅ `src/main/` - Java源代码
- ✅ `src/test/` - 测试代码
- ✅ `pom.xml` - Maven配置
- ✅ `target/` - 编译输出
**前端代码** (`frontend/` 目录):
- ✅ `src/` - Vue.js源代码
- ✅ `package.json` - NPM配置
- ✅ `vue.config.js` - Vue CLI配置
- ✅ `public/` - 静态资源
## ⚙️ 环境要求
### 后端要求
- ☑️ **Java**: 21+ (推荐)
- ☑️ **Maven**: 3.6+
- ☑️ **MongoDB**: 4.4+ (需要运行中)
### 前端要求
- ☑️ **Node.js**: ^16 或 ^18 (package.json指定)
- ☑️ **npm**: 自带或yarn
- ☑️ **Vue CLI**: 自动安装
## 🚀 启动方式
### 方式1:开发环境快速启动 ⭐️ 推荐
```bash
# 一键启动前后端 (后台运行)
./dev-start.sh
```
**特点**:
- ✅ 最简单快速
- ✅ 后台运行,不占用终端
- ✅ 适合日常开发
**访问地址**:
- 🌐 前端:http://localhost:9528
- 🔌 后端:http://localhost:8088
### 方式2:完整交互式启动
```bash
# 完整的启动过程,带环境检查
./start-full-project.sh
```
**特点**:
- ✅ 完整的环境检查
- ✅ 详细的启动日志
- ✅ 交互式选项
- ✅ 自动健康检查
### 方式3:手动分别启动
**启动后端**:
```bash
# 设置环境变量
export MONGODB_URI="mongodb://localhost:27017/jmalcloud"
# 启动Spring Boot
mvn spring-boot:run -Dspring-boot.run.profiles=dev
```
**启动前端**:
```bash
cd frontend/
# 安装依赖 (首次运行)
npm install
# 设置环境变量
export NODE_OPTIONS="--openssl-legacy-provider"
export VUE_APP_BASE_API="/api"
export API="http://localhost:8088"
# 启动Vue开发服务器
npm run dev
```
## 🛑 停止服务
```bash
# 停止所有服务
./stop-full-project.sh
```
## 📊 服务管理
### 查看运行状态
```bash
# 检查端口占用
lsof -ti:8088 # 后端
lsof -ti:9528 # 前端
# 检查进程
ps aux | grep spring-boot
ps aux | grep vue-cli-service
```
### 查看日志
```bash
# 实时查看日志
tail -f backend.log # 后端日志
tail -f frontend.log # 前端日志
# 或同时查看
tail -f backend.log frontend.log
```
## 🔧 常见问题解决
### 1. Node.js版本问题
如果Node.js版本不匹配:
```bash
# 使用nvm管理Node.js版本
nvm install 18
nvm use 18
# 或设置兼容选项
export NODE_OPTIONS="--openssl-legacy-provider"
```
### 2. 端口冲突
修改端口配置:
```bash
# 修改后端端口
export SERVER_PORT=8089
# 修改前端端口
export PORT=9529
```
### 3. MongoDB连接失败
```bash
# 启动MongoDB
brew services start mongodb-community # macOS
# 或
systemctl start mongod # Linux
# 检查连接
mongosh --eval "db.adminCommand('ping')"
```
### 4. Maven构建失败
```bash
# 清理并重新构建
mvn clean compile
# 跳过测试
mvn spring-boot:run -DskipTests
```
### 5. 前端依赖安装失败
```bash
cd frontend/
# 清理缓存
npm cache clean --force
rm -rf node_modules package-lock.json
# 重新安装
npm install
```
## 🎯 开发建议
### 推荐的开发流程
1. **首次启动**:使用 `./start-full-project.sh` 进行完整检查
2. **日常开发**:使用 `./dev-start.sh` 快速启动
3. **调试问题**:查看对应的日志文件
4. **停止服务**:使用 `./stop-full-project.sh` 完整停止
### 默认访问地址
| 服务 | 地址 | 说明 |
|------|------|------|
| **前端主页** | http://localhost:9528 | Vue.js开发服务器 |
| **后端API** | http://localhost:8088 | Spring Boot应用 |
| **健康检查** | http://localhost:8088/public/health | 后端状态检查 |
| **API文档** | http://localhost:8088/swagger-ui/ | 接口文档 |
### 登录信息
- **用户名**:`admin`
- **密码**:`123456`
## 📁 项目文件说明
| 文件 | 说明 | 用途 |
|------|------|------|
| `start-full-project.sh` | 完整启动脚本 | 生产级启动,含环境检查 |
| `dev-start.sh` | 开发快速启动 | 日常开发使用 |
| `stop-full-project.sh` | 停止脚本 | 清理所有服务和端口 |
| `backend.log` | 后端日志 | Spring Boot运行日志 |
| `frontend.log` | 前端日志 | Vue CLI开发服务器日志 |
## 💡 提示
1. **首次运行**建议使用 `./start-full-project.sh` 进行环境检查
2. **前端首次启动**会自动安装依赖,请耐心等待
3. **后端首次启动**需要编译,大约需要1-2分钟
4. **MongoDB必须先启动**,否则后端会连接失败
5. **端口占用**时脚本会自动清理旧进程
## 🆘 获得帮助
如果遇到问题:
1. 检查对应的日志文件
2. 确认环境要求是否满足
3. 尝试手动启动排查问题
4. 使用停止脚本清理环境后重试