构建检查
构建检查是代码提交前的最后一道质量关卡。
后端构建检查
编译检查
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 compile | BUILD 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 build | dist/ 目录生成 |
| 单元测试 | 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:fixLint 通过 - [ ]
pnpm build构建成功 - [ ] 无
console.log残留 - [ ] 字典未硬编码
- [ ] 图片使用
AuthImage组件
数据库清单
- [ ] Flyway 脚本命名正确(
V版本号__描述.sql) - [ ] 脚本可重复执行(
NOT EXISTS保护) - [ ] 业务数据
tenant_id为1 - [ ] 表包含标准字段(
id、tenant_id、create_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 冲突 | 脚本版本号重复 | 使用递增的版本号 |
