快速启动文档

使用 IDEA 将后端项目运行起来,并启动前端页面进行体验。

整个过程非常简单,预计 15-30 分钟即可完成(取决于网络下载速度)。


🌐 文档地址http://ruoyioffice.com | 📦 源码1https://gitcode.com/zhouzhongyan/ruoyi-office-vben.git | 📦 源码2https://gitcode.com/zhouzhongyan/ruoyi-office.git | 📦 源码3https://github.com/yuqing2026/ruoyi-office.git | 💬 微信:17156169080(备注「RuoYi Office」)

一、环境准备

在开始之前,请确保本机已安装以下环境:

环境 版本要求 说明
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 https://gitcode.com/zhouzhongyan/ruoyi-office.git

# 前端项目
git clone https://gitcode.com/zhouzhongyan/ruoyi-office-vben.git

克隆完成后,使用 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.sqlstatic_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: 123456

3.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 命名空间:

  • 命名空间 IDdev
  • 命名空间名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 进程
单体模式的好处
  1. 后悔药:项目初期采用微服务架构,后续发现资源不足或业务量不大,可切换为单体部署
  2. 开发提速:本地启动多个微服务很麻烦,单体模式一个进程搞定所有服务
  3. 架构升级:不确定选微服务还是单体?直接选微服务项目,按需切换部署方式
如何单体启动

在 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-serversystem-serverinfra-server)。


六、启动前端项目

6.1 安装依赖

在前端项目根目录执行:

# 安装 pnpm(如果未安装)
npm install -g pnpm

# 安装项目依赖
pnpm install

6.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 install

7.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:app

7.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

常见原因:

  1. Nacos 地址配错
  2. 命名空间 ID 不匹配(必须是 dev
  3. 网络不通

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 -am

Q7: 微服务模式下,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 失败

  1. 确认 Node.js 版本 >= 18,pnpm 版本 >= 9
  2. 删除 node_modulespnpm-lock.yaml 后重试
  3. 如遇网络问题,配置 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/ 下新增页面
Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐