Skip to content

项目结构与编译指南

项目结构

创建的项目采用多模块 Maven 架构:

{projectName}/
├── {projectName}-api/        # API 接口模块
│   ├── src/main/java/        # Controller、DTO
│   └── pom.xml
├── {projectName}-business/   # 业务逻辑模块
│   ├── src/main/java/        # Service、Manager
│   └── pom.xml
├── {projectName}-domain/     # 数据访问模块
│   ├── src/main/java/        # Mapper、Entity
│   ├── src/main/resources/   # Mapper XML
│   └── pom.xml
├── {projectName}-start/      # 启动模块
│   ├── src/main/java/        # Application 主类
│   ├── src/main/resources/   # application.yml
│   └── pom.xml
└── pom.xml                   # 父 POM(依赖管理)

模块职责

模块职责典型内容
api对外接口层Controller、Request/Response DTO、VO
business业务逻辑层Service 实现、业务规则、事务管理
domain数据访问层Mapper 接口、Entity 实体、MyBatis XML
start应用启动层Spring Boot 主类、配置文件、依赖引入

编译验证流程

标准编译命令

bash
# 进入项目目录
cd <project-name>

# 清理并编译(推荐)
mvn clean compile

# 清理、编译并安装到本地仓库
mvn clean install

# 仅编译特定模块
mvn clean compile -pl <project-name>-start

编译结果判断

输出含义下一步操作
BUILD SUCCESS编译成功✅ 可以开始开发
BUILD FAILURE编译失败🔧 执行自动诊断与修复

常见编译错误及修复

A. 依赖缺失问题

错误特征:

[ERROR] Failed to execute goal on project xxx:
Could not resolve dependencies for project xxx

修复步骤:

  1. 检查父 POM 中的 <dependencyManagement> 是否正确
  2. 检查子模块的 pom.xml 中依赖声明是否完整
  3. 执行依赖更新:
    bash
    mvn dependency:resolve
    mvn clean install -U  # -U 强制更新快照
  4. 检查网络连接或 Maven 仓库配置(~/.m2/settings.xml

B. 代码语法错误

错误特征:

[ERROR] /path/to/File.java:[line,col] cannot find symbol
[ERROR] /path/to/File.java:[line,col] incompatible types
[ERROR] /path/to/File.java:[line,col] method does not override

修复步骤:

  1. 定位到具体的类和行号
  2. 读取错误文件内容
  3. 根据错误信息修正代码:
    • cannot find symbol → 检查 import 语句或类名拼写
    • incompatible types → 检查类型转换或泛型声明
    • method does not override → 检查方法签名或父类/接口定义
  4. 重新执行编译验证

C. 配置文件错误

错误特征:

[ERROR] Failed to load ApplicationContext
[ERROR] Property 'xxx' not found

修复步骤:

  1. 检查 application.ymlapplication.properties 格式(注意缩进)
  2. 验证必填配置项是否存在(如数据库连接、Redis 地址)
  3. 检查占位符 ${...} 是否正确解析
  4. 修复配置后重新编译

D. Maven/Java 版本问题

错误特征:

[ERROR] Unsupported class file major version xx
[ERROR] requires at least Java 11

修复步骤:

  1. 检查当前 Java 版本:
    bash
    java -version
  2. 检查 pom.xml 中的 <java.version> 配置
  3. 如果不匹配,选择以下方案:
    • 升级/降级 JDK 版本
    • 修改 pom.xml 中的 Java 版本配置
  4. 执行清理后重新编译:
    bash
    mvn clean
    mvn compile

编译失败时的处理流程

如果自动修复无法解决问题:

  1. 保存完整错误日志

    bash
    mvn clean compile > build-error.log 2>&1
  2. 提供详细的诊断报告,包括:

    • 错误类型和位置
    • 影响的具体模块
    • 已尝试的修复步骤
    • 建议的手动解决方案
  3. 引导用户查看日志并提供进一步帮助

诊断报告示例

❌ 自动修复未能解决编译问题

📋 诊断报告:
- 错误类型:依赖解析失败
- 影响模块:my-project-domain
- 缺失依赖:com.digitalhainan:dh-common-utils:1.0.0-SNAPSHOT

🔧 已尝试的修复:
1. 执行 mvn dependency:resolve
2. 执行 mvn clean install -U
3. 检查 Maven 仓库配置

💡 建议操作:
1. 检查私有 Maven 仓库是否可访问
2. 确认 dh-common-utils 是否已正确发布
3. 查看详细错误日志:build-error.log

需要我帮您进一步排查吗?

后续开发建议

编译成功后,可以开始开发和测试项目。

1. 启动项目

方式一:使用 Maven 命令

bash
mvn spring-boot:run -pl <project-name>-start

方式二:在 IDE 中运行

  • 打开 <project-name>-start 模块
  • 找到 Application 主类(通常命名为 {ProjectName}Application
  • 右键点击 → Run 或 Debug

注意事项:

  • ⚠️ 不要自动执行启动命令:启动服务是长时间运行的阻塞操作,应引导用户手动决定何时启动
  • 首次启动可能需要下载依赖,请耐心等待
  • 确保端口 8080 未被其他程序占用

2. 验证项目启动

项目启动成功后,控制台会显示类似信息:

Started {ProjectName}Application in X.XXX seconds

3. 访问 Swagger 接口文档

大多数 Spring Boot 项目集成了 Swagger/Knife4j 文档工具。

重要:AI 应动态识别配置

在提供访问指引前,AI 必须:

  1. 读取 application.ymlapplication.properties
  2. 提取 server.portserver.servlet.context-path
  3. 根据实际配置生成准确的 URL

详细配置解析逻辑:查看 references/swagger-config.md

常见访问地址模板:

文档类型URL 模板
Knife4j(推荐)http://localhost:{port}/{context-path}doc.html
Swagger UIhttp://localhost:{port}/{context-path}swagger-ui.html
Swagger JSONhttp://localhost:{port}/{context-path}v2/api-docs

参数说明:

  • {port}:从 server.port 提取,默认 8080
  • {context-path}:从 server.servlet.context-path 提取,默认为空

如果无法访问:

  1. 检查项目是否集成了 Swagger/Knife4j 依赖
  2. 确认 AI 是否正确读取了配置文件
  3. 检查 Swagger 配置是否启用(检查 swagger.enable 或类似配置)
  4. 查看项目 README.md 或文档说明确认具体访问路径

Swagger 验证步骤:

  1. 浏览器访问上述地址
  2. 查看接口列表是否正常加载
  3. 尝试调用一个简单的接口(如健康检查 /actuator/health
  4. 确认返回结果符合预期

4. 其他常用操作

运行测试

bash
mvn test

打包部署

bash
mvn clean package
# 生成的 JAR 文件位于:<project-name>-start/target/

查看项目文档

  • 阅读 README.md 了解项目说明
  • 检查 docs/ 目录(如果有)
  • 查看 pom.xml 了解项目依赖

Power By 数字海南