3.5 KiB
在线运行预览实施计划
给智能体执行者: 必须使用
superpowers:subagent-driven-development(推荐)或superpowers:executing-plans,按任务逐项执行。本计划使用复选框(- [ ])跟踪进度。
目标: 为 EasyCode 生成出来的项目增加第一期本机在线运行预览能力。
架构: 新增一个内存态运行预览服务,负责导出生成源码、解压到本地工作目录、初始化 MySQL、启动后端/前端子进程,并暴露状态查询和停止接口。在现有项目预览页增加一个紧凑的运行预览控制区。
技术栈: Spring Boot 2.5、Java 8、JUnit 4、Mockito、Vue 3、Element Plus、Vite。
任务 1:后端运行预览核心能力
文件:
-
新建:
ruoyi-generator/src/main/java/com/ruoyi/generator/domain/front/dto/ProjectRunPreviewStatus.java -
新建:
ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/IFrontProjectRunPreviewService.java -
新建:
ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/RunPreviewPortAllocator.java -
新建:
ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/RunPreviewDatabaseInitializer.java -
新建:
ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/RunPreviewProcessRunner.java -
新建:
ruoyi-generator/src/main/java/com/ruoyi/generator/service/front/FrontProjectRunPreviewServiceImpl.java -
测试:
ruoyi-generator/src/test/java/com/ruoyi/generator/service/front/FrontProjectRunPreviewServiceImplTest.java -
编写失败测试:启动预览后返回后端/前端 URL,创建工作目录,初始化数据库,并启动两个进程。
-
编写失败测试:停止预览会终止两个进程,并返回
STOPPED。 -
实现最小可用的服务、辅助类和 DTO。
-
运行
mvn -pl ruoyi-generator -Dtest=FrontProjectRunPreviewServiceImplTest test。
任务 2:后端控制器接口
文件:
-
修改:
ruoyi-admin/src/main/java/com/ruoyi/web/controller/front/FrontProjectController.java -
增加启动、状态查询和停止预览接口。
-
每个接口通过
SecurityUtils.getUserId()获取当前用户,并委托给IFrontProjectRunPreviewService。 -
运行
mvn -pl ruoyi-admin -am -DskipTests package。
任务 3:生成模板运行时配置
文件:
-
修改:
ruoyi-generator/src/main/resources/qing/application.yml.vm -
修改:
ruoyi-generator/src/main/resources/qing/vue-config.js.vm -
后端端口和数据源通过环境变量配置。
-
Vue 开发服务端口和后端代理地址通过环境变量配置。
-
如已有 qing 模板测试,则运行相关测试。
任务 4:前端预览页控制区
文件:
-
修改:
easycode-web/src/api/project.js -
修改:
easycode-web/src/views/PreviewView.vue -
测试:
easycode-web/src/views/previewView.test.mjs -
编写失败的源码级测试,覆盖运行预览控件和 API 调用。
-
增加
startRunPreview、getRunPreviewStatus和stopRunPreviewAPI 方法。 -
在预览页增加运行预览按钮、状态文本、预览链接和日志展示。
-
运行前端单元/源码测试,并使用 Node 20 执行
npm run build。
任务 5:验证
文件:
-
预计不新增文件。
-
运行目标后端测试。
-
运行目标前端测试。
-
运行后端打包构建。
-
使用 Node 20 运行前端生产构建。
-
说明限制:第一期依赖本机可用的 MySQL、Maven、Node/npm。