Skip to content

构建检查

构建检查是代码提交前的最后一道质量关卡。

后端构建检查

编译检查

bash
# 全项目编译(跳过测试加速)
cd forge && mvn clean compile

# 全量构建(含编译 + 测试 + 打包)
cd forge && mvn clean install

# 跳过测试的快速构建
cd forge && mvn clean install -DskipTests

测试检查

bash
# 执行全部测试
cd forge && mvn test

# 执行指定模块的测试
cd forge-server/forge-framework/forge-plugin-system && mvn test

# 生成测试报告
cd forge && mvn surefire-report:report

检查项

检查项命令预期结果
编译通过mvn clean compileBUILD SUCCESS
测试通过mvn test所有测试通过
打包成功mvn clean install生成 JAR 文件
依赖检查mvn dependency:tree无冲突依赖

前端构建检查

Lint 检查

bash
# ESLint 检查 + 自动修复
cd forge-admin-ui && pnpm lint:fix

# 仅检查不修复
cd forge-admin-ui && pnpm lint

构建检查

bash
# 生产构建
cd forge-admin-ui && pnpm build

# 类型检查 + 构建
cd forge-admin-ui && pnpm typecheck && pnpm build

检查项

检查项命令预期结果
Lint 通过pnpm lint无错误
类型检查pnpm typecheck无类型错误
构建成功pnpm builddist/ 目录生成
单元测试pnpm test所有测试通过

文档构建验证

bash
# 构建文档站
cd forge-docs && pnpm build

# 本地预览
cd forge-docs && pnpm dev
检查项说明
Markdown 语法无语法错误
链接有效性内部链接可访问
图片显示图片资源存在
构建成功docs-dist/ 目录生成

提交前检查清单

在提交代码前,确认以下检查通过:

后端清单

  • [ ] mvn clean compile 编译通过
  • [ ] mvn test 测试通过
  • [ ] 无未使用的 import
  • [ ] 无硬编码密码或密钥
  • [ ] SQL 写在 Mapper XML 中
  • [ ] tenant_id 设置为 1

前端清单

  • [ ] pnpm lint:fix Lint 通过
  • [ ] pnpm build 构建成功
  • [ ] 无 console.log 残留
  • [ ] 字典未硬编码
  • [ ] 图片使用 AuthImage 组件

数据库清单

  • [ ] Flyway 脚本命名正确(V版本号__描述.sql
  • [ ] 脚本可重复执行(NOT EXISTS 保护)
  • [ ] 业务数据 tenant_id1
  • [ ] 表包含标准字段(idtenant_idcreate_by 等)

CI 流水线

完整的 CI 检查流程:

bash
# 后端
cd forge && mvn clean install
cd forge && mvn test

# 前端
cd forge-admin-ui && pnpm install --frozen-lockfile
cd forge-admin-ui && pnpm lint
cd forge-admin-ui && pnpm build
cd forge-admin-ui && pnpm test

# 文档
cd forge-docs && pnpm build

常见构建问题

问题原因解决方案
编译找不到包模块未在 pom.xml 引入添加模块依赖
测试 OOM堆内存不足增加 JVM 参数 -Xmx2g
前端构建超时Node 内存不足设置 NODE_OPTIONS=--max-old-space-size=4096
Flyway 冲突脚本版本号重复使用递增的版本号

下一步

Forge Admin — 基于 Vue3 + Spring Boot 的企业级后台管理框架