快速启动文档
使用 IDEA 将后端项目运行起来,并启动前端页面进行体验。
整个过程非常简单,预计 15-30 分钟即可完成(取决于网络下载速度)。
一、环境准备
在开始之前,请确保本机已安装以下环境:
| 环境 | 版本要求 | 说明 |
|---|---|---|
| JDK | 17 或 21 | 推荐使用 OpenJDK / GraalVM |
| Maven | 3.8+ | 用于后端项目构建 |
| Node.js | 18+ | 用于前端项目构建 |
| pnpm | 9.x+ | 前端包管理器 |
| MySQL | 5.7+ / 8.0+ | 数据存储 |
| Redis | 5.0+ | 缓存 |
| Nacos | 2.x | 注册中心 & 配置中心(微服务模式必需,单体模式不需要) |
| IDEA | 2023+ | 推荐使用 IntelliJ IDEA |
二、克隆代码
使用 IDEA 或命令行克隆项目代码:
# 后端项目
git clone <你的后端仓库地址>
# 前端项目
git clone <你的前端仓库地址>克隆完成后,使用 IDEA 打开后端项目,耐心等待 Maven 下载完相关依赖。
项目使用 Spring Cloud 相关组件,依赖较多,首次下载需要一段时间。如果下载过慢,建议配置 Maven 国内镜像源(如阿里云)。
三、初始化基础设施(必选)
3.1 初始化 MySQL
① 创建名为 ruoyi-office 的数据库:
CREATE DATABASE IF NOT EXISTS `ruoyi-office` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;② 执行 SQL 初始化数据:
- 商业版:从
ruoyi-office-db/dump下获取最新日期的schema_xxx.sql和static_data_xxx.sql,先执行数据结构 schema,再执行静态数据 sql。 - 开源版:执行
sql/mysql/目录下的dump-ruoyi-office-20260305.sql加微信17156169080 获取最新sql 文件进行初始化。

支持多种数据库:MySQL、PostgreSQL、Oracle、SQL Server、达梦(DM)、人大金仓(KingbaseES)、OpenGauss 等,对应的 SQL 文件在
sql/目录下各数据库子目录中。
③ 默认配置下,MySQL 启动在 3306 端口(Docker 环境为 33061),账号 root,密码 123456。如果不一致,需修改各服务的 application-local.yaml 配置文件中的数据库连接信息:
spring:
datasource:
dynamic:
datasource:
master:
url: jdbc:mysql://127.0.0.1:3306/ruoyi-office?useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true&rewriteBatchedStatements=true
username: root
password: 1234563.2 初始化 Redis
项目使用 Redis 缓存数据,请确保 Redis 服务已启动。
默认配置下,Redis 启动在 6379 端口,不设置密码。如果不一致,修改 application-local.yaml:
spring:
data:
redis:
host: 127.0.0.1
port: 6379
database: 0
# password: 你的Redis密码3.3 初始化 Nacos(微服务模式必需)
单体模式不需要 Nacos,可跳过本步。
项目使用 Nacos 作为注册中心和配置中心。
① 安装 Nacos(推荐 2.x 版本),单机模式启动:
# Linux/Mac
sh startup.sh -m standalone
# Windows
startup.cmd -m standalone② 访问 http://127.0.0.1:8848/nacos(默认账号密码 nacos/nacos),创建 dev 命名空间:
- 命名空间 ID:
dev - 命名空间名:
dev
注意:命名空间 ID 和名称都设为
dev。
四、基础设施(可选)
以下组件可选安装,不影响项目基本启动。可在项目跑通后再按需安装。
4.1 RocketMQ
项目使用 RocketMQ 作为消息队列和事件总线。默认配置连接 127.0.0.1:9876。
如果暂时不使用消息队列功能,可以不安装,项目启动时会输出连接警告但不影响核心功能。
4.2 XXL-Job
项目使用 XXL-Job 作为定时任务调度中心。
默认配置下,本地 local 环境的定时任务是关闭的(xxl.job.enabled=false),避免控制台报错。
如需开启,修改配置:
xxl:
job:
enabled: true
admin:
addresses: http://127.0.0.1:9090/xxl-job-admin五、启动后端项目
方式一:单体模式(推荐开发 & 快速体验 & 小微企业生产部署)
在项目根目录有一个 yudao-server 模块,它是项目的单体启动模式:
- 不依赖 Nacos 注册中心、配置中心
- 不使用 Feign 远程调用(都是 Spring Bean 本地调用)
- 只启动一个 Java 进程
单体模式的好处
- 后悔药:项目初期采用微服务架构,后续发现资源不足或业务量不大,可切换为单体部署
- 开发提速:本地启动多个微服务很麻烦,单体模式一个进程搞定所有服务
- 架构升级:不确定选微服务还是单体?直接选微服务项目,按需切换部署方式
如何单体启动
在 IDEA 中找到 yudao-server 模块下的 YudaoServerApplication 启动类(如下图 ① 所示),选择右上角的启动按钮(如下图 ② 所示)运行即可。默认开启 System 和 Infra 模块,其他模块参考对应的"功能开启"文档按需开启。

当控制台出现 "项目启动成功!"(如上图 ③ 所示)日志时,说明后端启动成功。
启动后访问 http://127.0.0.1:48080 验证,返回 JSON 字符串说明服务正常。
如何打包部署
# 单体模式打包(注意添加 -Dskip.repackage=true 参数)
mvn clean package "-Dmaven.test.skip=true" "-Dskip.repackage=true" -pl yudao-server -am -Pprod
# 启动 JAR
java -jar yudao-server/target/yudao-server.jar --spring.profiles.active=prod关键参数说明:
-Dskip.repackage=true:让子模块跳过spring-boot-maven-plugin的 repackage,由 yudao-server 统一打包-pl yudao-server -am:只构建 yudao-server 模块及其依赖
方式二:微服务模式(推荐中大型企业生产部署)
微服务模式下,各业务模块独立启动,通过 Nacos 注册发现,由 Gateway 统一对外暴露接口。
5.1 编译项目
使用 IDEA 自带的 Maven 插件,或在项目根目录执行:
mvn clean compile -Dmaven.test.skip=true整个编译过程预计需要 1-2 分钟。
5.2 启动 Gateway 网关服务
运行 GatewayServerApplication 类,启动 API 网关。
启动完成后,访问 http://127.0.0.1:48080,返回 JSON 字符串说明成功。
| 服务 | Application 类 | 端口 |
|---|---|---|
| Gateway 网关 | GatewayServerApplication | 48080 |
5.3 启动 System 系统服务
运行 SystemServerApplication 类,启动系统服务(用户、角色、菜单、权限)。
启动完成后,验证:
- 直接访问:
http://127.0.0.1:48081/admin-api/system/ - 通过网关:
http://127.0.0.1:48080/admin-api/system/
两个地址都返回 JSON 字符串说明成功。
| 服务 | Application 类 | 端口 |
|---|---|---|
| System 系统服务 | SystemServerApplication | 48081 |
5.4 启动 Infra 基础设施服务
运行 InfraServerApplication 类,启动基础设施服务(文件、代码生成、配置、日志)。
启动完成后,验证:
- 直接访问:
http://127.0.0.1:48082/admin-api/infra/ - 通过网关:
http://127.0.0.1:48080/admin-api/infra/
| 服务 | Application 类 | 端口 |
|---|---|---|
| Infra 基础设施服务 | InfraServerApplication | 48082 |
5.5 启动其他业务服务(按需)
以下服务根据业务需要按需启动:
| 服务 | Application 类 | 端口 | 说明 |
|---|---|---|---|
| OA 协同办公 | OaServerApplication | 48101 | 协同办公 |
| HRM 人力资源 | HrmServerApplication | 48102 | 人力资源 |
| BPM 工作流 | BpmServerApplication | 48083 | Flowable 工作流引擎 |
| Report 报表 | ReportServerApplication | 48084 | 积木报表 |
| Pay 支付 | PayServerApplication | 48085 | 支付渠道管理 |
| MP 公众号 | MpServerApplication | 48086 | 微信公众号 |
| Member 会员 | MemberServerApplication | 48087 | C 端会员体系 |
| ERP 进销存 | ErpServerApplication | 48088 | 采购、销售、库存 |
| CRM 客户管理 | CrmServerApplication | 48089 | 线索、客户、商机 |
| AI 大模型 | AiServerApplication | 48090 | AI 对话、知识库 |
| IoT 物联网 | IotServerApplication | 48091 | 设备管理 |
| Product 商品 | ProductServerApplication | 48100 | 商品 SPU/SKU |
| Trade 交易 | TradeServerApplication | 48102 | 订单、售后 |
| Statistics 统计 | StatisticsServerApplication | 48103 | 数据统计 |
最小可用集:只需启动 Gateway + System + Infra 三个服务,即可进入管理后台使用基础功能。
5.6 验证服务注册
启动完成后,访问 Nacos 控制台 http://127.0.0.1:8848/nacos → 服务管理 → 服务列表,确认各服务已注册(如 gateway-server、system-server、infra-server)。
六、启动前端项目
6.1 安装依赖
在前端项目根目录执行:
# 安装 pnpm(如果未安装)
npm install -g pnpm
# 安装项目依赖
pnpm install6.2 启动开发服务器
# 在前端项目根目录
cd apps/web-antd
pnpm dev启动成功后,控制台会输出访问地址(默认 http://localhost:5173)。
6.3 访问管理后台
打开浏览器,访问 http://localhost:5173,使用以下默认账号登录:
| 账号 | 密码 | 说明 |
|---|---|---|
| admin | admin123 | 超级管理员 |
前端默认通过 Vite 代理将
/admin-api请求转发到后端,无需额外配置 Nginx。
七、启动移动端项目(APP / 小程序)
移动端基于 uni-app + Vue 3 + TypeScript 开发,支持 H5、微信小程序、APP(iOS/Android)等多端运行。
7.1 环境要求
| 环境 | 版本要求 | 说明 |
|---|---|---|
| Node.js | 20+ | 高于前端 PC 端要求 |
| pnpm | 9+ | 包管理器 |
移动端不依赖 HBuilderX,全部通过命令行运行和构建。
7.2 安装依赖
在移动端项目根目录(ruoyi-office-uniapp)执行:
pnpm install7.3 配置后端地址
编辑 env/.env 文件,确认后端请求地址与你的后端服务一致:
# 后台请求地址(默认指向本地后端)
VITE_SERVER_BASEURL = 'http://localhost:48080/admin-api'如果后端部署在远程服务器,将
localhost:48080替换为实际服务器地址。
7.4 启动开发服务
根据目标平台选择对应的启动命令:
# H5(浏览器)
pnpm dev
# 微信小程序
pnpm dev:mp
# APP
pnpm dev:app| 平台 | 启动命令 | 说明 |
|---|---|---|
| H5 | pnpm dev | 浏览器访问,默认端口 9000 |
| 微信小程序 | pnpm dev:mp | 需安装微信开发者工具,导入生成的 dist/dev/mp-weixin 目录 |
| APP | pnpm dev:app | 需连接手机或模拟器 |
| 支付宝小程序 | pnpm dev:mp-alipay | 需安装支付宝开发者工具 |
7.5 构建生产包
# H5 构建
pnpm build
# 微信小程序构建
pnpm build:mp
# APP 构建
pnpm build:app7.6 默认登录账号
与 PC 端一致:
| 账号 | 密码 | 说明 |
|---|---|---|
| admin | admin123 | 超级管理员 |
八、PC 前端构建与部署
7.1 构建生产包
# 在前端项目根目录
pnpm install
# 构建内部依赖包
pnpm -r --filter "./packages/**" --filter "./internal/**" build
# 构建前端应用
cd apps/web-antd
pnpm build构建产物位于 apps/web-antd/dist/ 目录。
7.2 部署到服务器
将 dist/ 目录内容上传到 Nginx 的 web 目录:
scp -r apps/web-antd/dist/* root@服务器IP:/data/nginx/html/web/7.3 Nginx 配置
server {
listen 80;
server_name _;
# 前端静态文件
location /web {
alias /data/nginx/html/web;
index index.html;
try_files $uri $uri/ /web/index.html;
}
# 后端 API 反向代理
# 单体模式:直接代理到后端服务 :48080
# 微服务模式:代理到 Gateway :48080(由 Gateway 分发到各微服务)
location /admin-api {
proxy_pass http://127.0.0.1:48080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
# 根路径跳转到管理后台
location = / {
return 302 /web;
}
}无论单体模式还是微服务模式,Nginx 配置完全一样——都是反代到
:48080。区别只在于单体模式下:48080是 yudao-server,微服务模式下:48080是 Gateway。
九、单体模式 vs 微服务模式对比
| 对比项 | 单体模式 | 微服务模式 |
|---|---|---|
| 依赖中间件 | MySQL + Redis | MySQL + Redis + Nacos |
| 启动进程 | 1 个 Java 进程 | N 个 Java 进程(Gateway + 各服务) |
| 打包命令 | mvn package -pl yudao-server -am -Dskip.repackage=true | mvn package(全量构建) |
| Maven Profile | -Dskip.repackage=true(boot 模式) | 默认(cloud 模式) |
| Nacos | 不需要 | 必需 |
| 适用场景 | 开发调试、中小项目、资源有限 | 生产环境、大团队、高并发、独立扩缩容 |
| 服务器内存 | 4GB+ | 8GB+(推荐 16GB) |
| Nginx 反代 | /admin-api → :48080 | /admin-api → Gateway :48080 |
十、接口文档
项目集成了 Knife4j(Swagger)接口文档:
| 模式 | 文档地址 | 说明 |
|---|---|---|
| 单体模式 | http://127.0.0.1:48080/doc.html | 所有接口在同一文档 |
| 微服务模式 | http://127.0.0.1:48080/doc.html | Gateway 聚合所有微服务的文档 |
十一、常见问题
Q1: 后端启动失败,提示找不到类或依赖报错
首次导入项目或切换分支后,Maven 依赖可能未完全下载。在 IDEA 右侧 Maven 面板中,选中根项目执行 package 并跳过测试:

或在项目根目录执行命令行:
mvn clean package -Dmaven.test.skip=true等待构建完成后,再重新启动即可。
Q2: IDEA 启动报 "Command line is too long"
点击 IDEA 报错中的蓝色链接,自动切换为 @argfile 方式即可解决。也可手动修改 .idea/workspace.xml,将 shortenCommandLine 设置为 ARGS_FILE。
Q3: 启动时数据库连接失败
确认 MySQL 地址、端口、账号密码与 application-local.yaml 中配置一致。如果使用 Docker 运行 MySQL,注意默认端口可能是 33061 而非 3306。
Q4: 微服务模式下,服务在 Nacos 看不到
# 检查 Nacos 连接
telnet 127.0.0.1 8848常见原因:
- Nacos 地址配错
- 命名空间 ID 不匹配(必须是
dev) - 网络不通
Q5: 前端启动后,接口 401 未授权
确认后端服务已正常启动,且前端 Vite 代理配置正确。默认情况下,开发模式会自动代理 /admin-api 到后端。
Q6: 单体模式打包后 JAR 文件过大(超过 500MB)
确保打包时添加了 -Dskip.repackage=true 参数。该参数让各子模块跳过 spring-boot-maven-plugin 的 repackage,避免子模块各自打出 Fat JAR 导致重复打包。
正确命令:
mvn clean package "-Dmaven.test.skip=true" "-Dskip.repackage=true" -pl yudao-server -amQ7: 微服务模式下,Gateway 报 503 Service Unavailable
目标微服务尚未启动或未在 Nacos 注册。等待目标服务启动完成(约 30 秒),然后在 Nacos 控制台确认服务已注册。
Q8: 想只启动部分服务,最小化资源占用
- 最小可用集(管理后台基础功能):
Gateway + System + Infra - 加上 OA 和工作流:
Gateway + System + Infra + BPM + OA - 内存估算:每个服务约 512MB~1GB,Gateway 约 256MB
Q9: Maven 依赖下载慢或下载失败
在 Maven settings.xml 中配置阿里云镜像:
<mirror>
<id>aliyunmaven</id>
<mirrorOf>*</mirrorOf>
<name>阿里云公共仓库</name>
<url>https://maven.aliyun.com/repository/public</url>
</mirror>Q10: 前端 pnpm install 失败
- 确认 Node.js 版本 >= 18,pnpm 版本 >= 9
- 删除
node_modules和pnpm-lock.yaml后重试 - 如遇网络问题,配置 npm 镜像:
pnpm config set registry https://registry.npmmirror.com
十二、项目结构概览
project-root/
├── yudao-server/ # 单体启动入口
├── yudao-gateway/ # API 网关(微服务模式)
├── yudao-module-system/ # 系统管理模块
│ ├── yudao-module-system-api/ # 对外接口
│ └── yudao-module-system-server/ # 业务实现(端口 48081)
├── yudao-module-infra/ # 基础设施模块
│ ├── yudao-module-infra-api/
│ └── yudao-module-infra-server/ # (端口 48082)
├── yudao-module-bpm/ # 工作流模块(端口 48083)
├── yudao-module-oa/ # OA 协同办公模块(端口 48101)
├── yudao-module-hrm/ # 人力资源模块
├── yudao-module-crm/ # CRM 模块(端口 48089)
├── yudao-module-erp/ # ERP 模块(端口 48088)
├── yudao-module-pay/ # 支付模块(端口 48085)
├── yudao-module-ai/ # AI 大模型模块(端口 48090)
├── yudao-module-iot/ # 物联网模块(端口 48091)
├── yudao-module-mall/ # 商城模块(商品/交易/营销/统计)
├── yudao-module-member/ # 会员模块(端口 48087)
├── yudao-module-report/ # 报表模块(端口 48084)
├── yudao-module-mp/ # 公众号模块(端口 48086)
├── yudao-framework/ # 公共框架组件
├── sql/ # 数据库初始化脚本
│ ├── mysql/
│ ├── postgresql/
│ ├── oracle/
│ └── ...
└── pom.xml # Maven 根配置前端项目结构:
frontend-root/
├── apps/
│ └── web-antd/ # 管理后台前端(Ant Design Vue)
│ ├── src/
│ │ ├── api/ # API 接口定义
│ │ ├── views/ # 页面组件
│ │ ├── components/ # 公共组件
│ │ ├── router/ # 路由配置
│ │ └── store/ # 状态管理
│ └── vite.config.mts
├── packages/ # 公共包
├── internal/ # 内部工具
└── pnpm-workspace.yaml十三、下一步
| 目标 | 参考文档 |
|---|---|
| 生产环境部署(单体) | 快速部署指南 |
| 生产环境部署(微服务) | 微服务部署指南 |
| 新增业务模块 | 参考已有模块结构,创建对应的 yudao-module-xxx |
| 前端开发 | 在 apps/web-antd/src/views/ 下新增页面 |
