使用示例(通过Skill接入第三方Agent)
工作流程
本地Java项目→创建隔离工作副本和Git基线→识别Maven/Gradle/Ant及项目结构→ 迁移前完整构建→DevKit源码扫描与ARM64兼容改造→按需调用独立sql-migration→迁移后重新构建→最终JAR/WAR DevKit pkg-mig扫描→ARM64架构与运行/验收验证
工作目录
<work_dir>/ ├── migration-result.json # 顶层状态、阶段、结果和待办 ├── workspace.json # 工作区元数据 ├── workspace/source/ # 隔离源码工作副本 ├── reports/ │ ├── devkit-source/ # 源码兼容性扫描结果 │ └── devkit-package/ # 最终制品扫描结果 ├── output/ # 最终候选JAR/WAR └── sql-migration/ # 启用SQL迁移时的独立SQL工作目录
操作步骤
以使用OpenCode将Java有源码的项目“ruoyi-vue-pro”迁移至鲲鹏平台为例。
使用Skill进行迁移的过程中,需用户通过本地配置文件或在Agent交互中提供数据库或服务器的用户名和密码连接源数据库或源服务器,可能存在一定安全风险,为保障用户数据安全,使用后请及时删除配置文件中的密码。
迁移过程中不对用户名和密码做存储操作,仅作为迁移流程中的一次性使用。
- 已在OpenCode中配置好Skill。
C/C++迁移的Skill可在开源仓获取,配置方式可参考为第三方Agent配置Skill。
- 在对话框中输入迁移意图。
将Java有源码项目/home/ruoyi-vue-pro迁移至鲲鹏平台
部分返回信息:
+ Thought: 836ms → Skill "java-arm-migration" + Thought: 703ms ... ... ... I'll start the Java source ARM64 migration. Let me set up a task plan and verify the environment first. # Todos [●] 环境与项目预检(JDK/Maven/DevKit/项目结构) [ ] prepare/inspect/baseline:创建工作副本并完成基线构建 [ ] compatibility:DevKit src-mig 源码扫描与架构热点处理 [ ] sql: SQL 迁移决策(skip 或 sql-migration Skill) [ ] build:最终构建并产出 JAR/WAR [ ] package_scan:DevKit pkg-mig 制品扫描 [ ] verify:ARM64 架构与运行验收 ... ... ...
- 确认验收信息。
当服务器缺少验收条件时需用户交互确认执行选项。
此处选择“2”。
+ Thought: 4.1s The environment lacks MySQL and Redis needed for full runtime acceptance. Let me confirm the approach with you. → Asked 1 question Build · deepseek-v4-flash 迁移已完成基线/兼容性/构建/制品扫描/架构验证,仅剩「运行时验收」待完成。运行 yudao-server.jar 需要 MySQL 与 Redis,但当前机器未安装。如何完成运行时验收? 1. 安装 MariaDB/MySQL + Redis 并启动服务验收(Recommended) 通过 yum 安装 mariadb-server 与 redis,导入项目 SQL 后启动 yudao-server.jar 做健康检查验收 2. 仅做 JVM 启动级冒烟验证 不安装数据库,用 java -jar 启动看 Spring Boot 是否加载到数据源阶段即视为验收(弱验收) 3. 跳过运行时验收 保留 COMPLETED_WITH_ACTIONS 状态,仅归档产物与报告 4. Type your own answer ↑↓ select enter submit esc dismiss
- 查看迁移完成结果。
# Todos [√]环境与项目预检(JDK/Maven/DevKit/项目结构) [√] prepare/inspect/baseline:创建工作副本并完成基线构建 [√] compatibility: DevKit src-mig 源码扫描与架构热点处理 [√] sql: SQL 迁移决策 (mysqlwdm, 4 条 TDengine 人工介入无需迁移) [√] build: 最终构建并产出 JAR/WAR(17 个制品) [√] package_scan: DevKit pkg-mig 制品扫描(无 findings) [√] verify: ARM64 架构与 JVM 启动级运行验收 迁移完成,最终状态 COMPLETED_WITH_ACTIONS。已在隔离工作副本中完成全流程,未改动原项目 /home/ruoyi-vue-pro。 迁移结果(工作目录:~/.java-arm-migration/work/ruoyi-vue-pro-d2bbfbcd2e17/) : ┌─────────────────┬────────────────────────────────────────────────────────────────────────────┐ │阶段 │结果 │ │─────────────────│────────────────────────────────────────────────────────────────────────────│ │基线构建 │mvn -B clean package 成功 │ │─────────────────│────────────────────────────────────────────────────────────────────────────│ │DevKit 源码扫描 │0 findings, 0 架构热点 │ │─────────────────│────────────────────────────────────────────────────────────────────────────│ │SQL迁移(mysql dm)│208 兼容 + 5 迁移;4条为IoT模块TDengine时序库专用SQL,无需迁移至DM │ │─────────────────│────────────────────────────────────────────────────────────────────────────│ │最终构建 │产出17个JAR。主制品 yudao-server.jar(155MB) │ │─────────────────│────────────────────────────────────────────────────────────────────────────│ │DevKit 制品扫描 │全部通过,无 findings │ │─────────────────│────────────────────────────────────────────────────────────────────────────│ │架构验证 │aarch64 │ │─────────────────│────────────────────────────────────────────────────────────────────────────│ │运行时验收 │JVM启动级冒烟通过(Spring Boot启动、Tomcat初始化48080端口,无架构相关类加载/原生库错误) │ └─────────────────│────────────────────────────────────────────────────────────────────────────┘ 制品输出:~/.java-arm-migration/work/ruoyi-vue-pro-d2bbfbcd2e17/output/(17 个 JAR, 含 yudao-cserver/yudao-server.jar) 唯一遗留动作:SQL manyal_review 4 条 (TDengine 时序库专用 SQL),已由 sql-migration-decision.json 记录为「无需迁移至 DM」,不影响 MySQL 业务 SQL。 提示:完整业务级验收需在装好 MySQL + Redis 后运行,当前仅按你的选择做了 JVM 启动级弱验收。
迁移结果目录为~/.java-arm-migration/work/ruoyi-vue-pro-d2bbfbcd2e17/output/,共输出17个JAR(含yudao-cserver/yudao-server.jar),后续可自行使用该结果进行详细验证。
输出产物
主要产物位于项目对应的迁移工作目录中:
<work_dir>/ ├── migration-result.json # 顶层状态、阶段、结果和待办 ├── workspace.json # 工作区元数据 ├── workspace/source/ # 隔离源码工作副本 ├── reports/ │ ├── devkit-source/ # 源码兼容性扫描结果 │ └── devkit-package/ # 最终制品扫描结果 ├── output/ # 最终候选JAR/WAR └── sql-migration/ # 启用SQL迁移时的独立SQL工作目录
父主题: Java应用有源码迁移