" />

快速开始

目标:从零把后端宿主和前端跑起来,然后装一个应用验证整条链路。 全程不需要重启后端。

0 · 环境要求

JDK / Maven 没加进 PATH 的话,每个新终端先设一次。

要求说明
JDK17+根 pom 编译目标是 17
Maven3.9+仓库没有 Maven Wrapper,需要本机装
Node.js20+engines 写的是 ≥18.18.0,按 22 验证
MySQL8.x驱动 com.mysql.cj.jdbc.Driver
Redis6+客户端是 Redisson
$env:JAVA_HOME = "C:\Users\<you>\.jdks\corretto-17"
$mvn = "C:\path\to\maven\bin\mvn.cmd"

1 · 初始化数据库

按顺序导入 script/sql/ 下的脚本。

① script/sql/platform_init.sql              平台表与平台数据
② script/sql/update/app_market*.sql         应用市场表结构(按文件名顺序)
③ script/sql/app_catalog_seed.sql           应用目录种子

不要再用上游的 ry_vue_5.X.sql 做初始化 —— 它不是本仓库的种子数据。 应用的建表脚本不在这里,它们随应用包走、安装时自动执行。

2 · 编译并打包后端

改了后端代码必须 install,不是 compile。

# 全反应堆编译(根 pom 默认 skipTests=true)
& $mvn -B -q compile -DskipTests

# 打可运行 jar
& $mvn -pl ruoyi-admin -am -B install -DskipTests

只跑 mvn compile 不会更新 ruoyi-admin.jar —— 你启动的还是旧代码,然后会得出"我的改动没生效"的错误结论。

3 · 启动后端宿主

推荐用启动脚本:它会先清理上一版插件 jar,再启动。

# 默认:清理 + 启动
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\start-host.ps1

# 其它用法
- Build        先重新打包再启动
- Port 8087    换端口
- NoPlugin     不加载插件(排查用)

-Dloader.path=...引号不能省 —— PowerShell 会把它拆成 /path=plugins-dist,报 ClassNotFoundException。两个 -D 参数都要加引号。

工作目录必须是 RuoYi-Vue-Plusplugin-dirfrontend-dir 都是相对路径。另外 application.yml 里的 profile 是硬编码的 prod,运行期切换只能靠 -Dspring.profiles.active=

4 · 启动前端

dev server 在 80 端口。

cd plus-ui
npm install
npm run dev

dev server 会把 /remote-apps/* 映射到 plus-ui/app-market-dist/remote-apps —— 这正是后端落位远程应用前端产物的地方,所以后端的 app-market.deploy.frontend-dir 必须与它指向同一个物理目录。

5 · 登录

租户 000000 / 账号 admin / 密码 admin123。

上层环境前必须替换仓库里的开发凭据:数据库与 Redis 连接信息、Sa-Token JWT 密钥、 加解密公私钥、app-market.security.public-key(源码注释已写明是开发验证阶段生成的)、 以及前端 .env.* 里的接口地址。

6 · 装一个应用验证链路

在「应用市场」里选一个应用点安装,然后看任务中心。

1生成安装任务记录
2检查本机产物 → 缺则拉包 → 校验校验和与签名 → 落位
3执行包内 migrations/*.sql(按文件名排序,幂等)
4加载后端插件(在迁移之后)
5同步菜单与授权
6任务置为成功

第 3 步在第 4 步之前是刻意设计的:先改表结构、再切换代码。 「我的应用 → 应用任务」里有每一步的进度与日志,这是排查问题的第一站

打包自己的应用

仓库里已有 10 个应用可以作为参考。

# 第一次:生成签名密钥(会建目录)
powershell -NoProfile -ExecutionPolicy Bypass -File plugins\package.ps1 -Keygen

# 打包 + 签名(脚本会自己构建前后端)
powershell -NoProfile -ExecutionPolicy Bypass -File plugins\package.ps1 `
    -Plugin ruoyi-<name> -SigningKey plugins\keys\private.pem

宿主默认是 enforce 模式,未签名的包上传就会被拒。 发布时统一带 -SigningKey