---
description: e-code 后端工程模板检查与初始化边界
---

# 后端工程模板检查

本文件只记录后端工程模板检查口径，不提供可手工执行的创建步骤。后端工程初始化、子模块规范检查、二开依赖在线导入、构建打包和部署验证统一使用 `backend-project-init` Skill。

## 1. 触发条件

仅在 `backend-project-init` 需要核对模板检查项时加载：

- 创建或初始化后端本地项目。
- 下载后端依赖。
- 创建后端子模块。
- 修复 Gradle、`secDevLib`、`secDevClasses` 结构。

纯前端在线项目不得使用本模板。

## 2. 最小判断

优先读取 `.ecode/project-state.json`。缓存无效时检查：

- `buildSrc`
- `gradle`
- `secDevLib`
- `secDevClasses`
- `devLib`
- `build.gradle`
- `settings.gradle`
- `gradlew`
- `gradlew.bat`
- `gradle.properties`

`secDevLib` 中 jar 数量通常需大于 500。

子模块同时检查：

- 目录名必须以 `secondev-` 开头
- `<module>/<module>.gradle` 命名必须与目录名一致
- 必须存在 `src/main/java`
- 必须存在 `src/main/resources`

校验输出至少区分：

- `root_template_invalid`
- `module_template_invalid`
- `dependency_incomplete`

## 3. 初始化边界

- 当前 `backend-project-init/scripts/project-validator.mjs` 只提供 inspect/download 能力。
- 若根工程或子模块骨架缺失，且没有可用初始化实现，必须报告 `backend_project_initializer_missing`。
- 禁止手工使用 `mkdir`、`touch`、`echo`、临时脚本或直接写 Gradle 文件创建后端工程骨架。
- 禁止把旧规范、案例或业务开发规范中的目录片段当作可执行模板。

## 4. 依赖初始化

依赖初始化默认路径：

- 先确认用户本轮提供的 E10 基线版本，或缓存中存在未冲突的 `E10Version`
- 按基线版本映射到对应二开依赖下载地址
- 在临时目录执行在线下载、解压、导入 `secDevLib`
- 导入后重新检查 jar 数量

不得使用 `e10-frontend-local-tooling` 处理后端依赖导入。
