# ryp-cpn **Repository Path**: renneseme/ryp-cpn ## Basic Information - **Project Name**: ryp-cpn - **Description**: 将 RuoYi-Vue-Plus脚手架(6.X 优先,兼容 5.X)在线下载或本地解压后,一键完成包名、模块前缀、RuoYi 字样、数据库与 Redis 配置的批量替换,在指定目录输出可直接开发的工程代码。 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-09-12 - **Last Updated**: 2026-09-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: 桌面端工具 ## README # 若依工程改造器(ryp-cpn)

logo

桌面端工具:将 **RuoYi-Vue-Plus** 脚手架(6.X 优先,兼容 5.X)在线下载或本地解压后,一键完成**包名、模块前缀、RuoYi 字样、数据库与 Redis 配置**的批量替换,在指定目录输出可直接开发的工程代码。 基于 **Tauri 2 + React 18 + TypeScript**,一套代码打包 Windows / macOS / Linux 安装包。 ## 界面预览 **主界面**:编号步骤卡片引导完成全部配置 ![主界面](docs/screenshots/main.png) **历史记录**:自动记录每次替换任务(最近 50 次) ![历史记录](docs/screenshots/history.png) **关于页**:版本信息、简介与技术栈致谢 ![关于页](docs/screenshots/about.png) ## 功能特性 - **两种代码来源**:在线下载(内置 Gitee / GitHub 源,`git clone --depth 1` 浅克隆,默认分支 `6.X`)或选择本地 zip 压缩包 - **包名重命名**:`org.dromara` → 自定义包名 - 自动从源码目录发现**本项目自身子包**(common / system / workflow / …),只替换项目代码 - 自动保护同名第三方依赖坐标(`org.dromara.warm` / `org.dromara.sms4j` / `org.dromara.mica-mqtt` / `org.dromara.easy-es`)不被误改 - 物理移动源码目录 `src/main/java/org/dromara` → `src/main/java/<新包路径>`,并清理空目录 - **模块前缀替换**:`ruoyi-admin` → `<前缀>-admin`(目录与 pom 同步改名)、`ruoyi_group`、`RuoYi-Vue-Plus`、`RuoYi` / `Ruoyi` 变体、`DromaraApplication` → `<前缀驼峰>Application`、`DromaraServletInitializer` 同步改名;可选替换「若依」中文 - **数据库 / Redis 配置**:结构化 YAML 补丁,按键名定位 `datasource.master` 与 `spring.data.redis` 段落,只改键值、**保留全部注释与排版**,不依赖具体默认值 —— 上游更新配置文件也不受影响;Redis 留空的项不做修改 - **仅分析模式**:dry-run,只输出替换摘要不生成工程 - **任务历史**:自动记录最近 50 次任务(配置、耗时、结果) - **表单记忆**:配置自动保存在本机,下次打开自动恢复 - **替换规则外置**:所有规则在 [`src-tauri/resources/replacement-rules.json`](src-tauri/resources/replacement-rules.json),支持 `{{变量}}` 模板;若依升级后一般只需微调规则文件,无需改代码 ## 使用 ### 环境要求 - Node.js 18+、pnpm - Rust 1.77+(Windows 需 MSVC Build Tools) - git(在线下载模式使用) ### 开发运行 ```bash pnpm install pnpm tauri dev ``` ### 使用流程 1. **代码来源**:选「在线下载」(Gitee / GitHub + 分支)或「本地压缩包」 2. **替换配置**:填新包名(如 `com.acme.app`)、工程前缀(如 `acme`)、显示名称,主类名实时预览 3. **数据库**:填 JDBC 连接串、用户名、密码 4. **Redis**:填 host / port / 密码 / database,留空项不改 5. **输出**:选择输出目录(生成 `<输出目录>/<工程前缀>/`),可勾选「仅分析」试跑 6. 点击**开始替换**,实时查看进度,完成后输出替换摘要(扫描 / 修改文件数、重命名统计、各规则命中数) ## 三平台打包 ### 本机打包 ```bash pnpm tauri build ``` | 平台 | 产物 | 说明 | |---|---|---| | Windows | `.msi`、NSIS `.exe` 安装包 | Windows / macOS / Linux 均可直接构建 | | macOS | `.app`、`.dmg` | 仅能在 macOS 系统上构建 | | Linux | `.deb`、`.AppImage` | Windows 上需通过 WSL2 构建 | 注意:`cargo` 需在 PATH 中(Windows 下确认 `%USERPROFILE%\.cargo\bin` 已加入)。 ### 云端打包(GitHub Actions) 仓库已内置 [`.github/workflows/build.yml`](.github/workflows/build.yml):将代码推送到 GitHub 后,打 `v*` 标签(如 `v0.1.0`)或在 Actions 页面手动触发,即可在云端自动构建三平台安装包——Windows(msi/exe)、macOS Intel + Apple Silicon(app/dmg)、Linux(deb/AppImage),并自动上传到 GitHub Release(草稿状态,发布前可检查)。 这是获得 macOS 安装包的推荐方式——macOS 包无法在 Windows/Linux 上构建。 **更换应用图标**:替换 `src-tauri/icons/source/app.png`(建议 1024×1024),执行 `pnpm tauri icon src-tauri/icons/source/app.png` 重新生成全套图标,再重新 build。 ## 工程结构 ``` src/ 前端(React + TypeScript) pages/JobPage.tsx 主界面:来源选择、配置表单、进度与摘要 pages/HistoryPage.tsx 历史记录 pages/SettingsPage.tsx 设置 pages/AboutPage.tsx 关于 App.tsx 应用壳(侧边栏导航) App.css 全局样式(响应式:1080/860/560 三档断点) src-tauri/ src/ engine.rs 任务总控:克隆/解压 → 分析 → 改名 → 替换 → 输出 patcher.rs 包发现、文本替换(保护第三方依赖)、路径改名 yamledit.rs 结构化 YAML 补丁(datasource.master / redis) rules.rs 规则加载 ziputil.rs zip 解压(zip-slip 防护)与流式下载 resources/ replacement-rules.json 替换规则(外置,可维护) icons/source/app.png 应用图标源图 docs/screenshots/ README 截图 ``` ## 测试 ```bash cd src-tauri cargo test ``` 包含引擎单元测试与**真实仓库端到端测试**:将本地克隆的 RuoYi-Vue-Plus 6.X / 5.X 打包后完整执行替换流程并逐项断言(模块改名、主类迁移、pom 坐标、第三方依赖保留、YAML 配置与注释、零残留等)。端到端测试依赖本地 `.ref/` 目录下的克隆(`git clone --depth 1 -b 6.X https://gitee.com/dromara/RuoYi-Vue-Plus.git .ref/ryp-6x`),无克隆时自动跳过。 ## 注意事项 - SQL 脚本文件名(`ry_vue.sql` 等)保持原名,数据库名以你填写的 JDBC 连接串为准 - 二进制文件(图片 / 字体等)自动跳过;非 UTF-8 文本文件跳过并记入警告 - 输出目录 `<输出目录>/<工程前缀>/` 已存在时会拒绝写入,避免覆盖 - 表单 / 历史记录保存在本机 WebView 本地存储中,可在「设置」页清空 ## 致谢 - [dromara/RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus) —— 所改造的脚手架 - [Tauri](https://tauri.app)、[React](https://react.dev)、[Iconify · Lucide](https://icon-sets.iconify.design)(图标,MIT License) ## 许可证 [MIT License](LICENSE)