Skip to content

Latest commit

 

History

History
110 lines (99 loc) · 5.25 KB

File metadata and controls

110 lines (99 loc) · 5.25 KB

回到首页

项目概览

项目基本信息

  • 名称: demo
  • GroupId (Maven): com.example
  • ArtifactId (Maven): demo
  • Version: 0.0.1-SNAPSHOT
  • 主要编程语言: Java

先决条件

  • JDK 版本: 1.8 (根据 Maven 的 <java.version> 属性配置)
  • 构建工具版本: Maven (根据文件类型 pom.xml 和 Maven 特有的结构识别)
  • 其他依赖:
    • Spring Boot Starter (核心依赖)
    • Spring Boot Starter Web (Web 应用支持)
    • Lombok (简化代码工具,需安装 IDE 插件)
    • Spring Boot Starter Test (测试支持)
    • Jacoco Maven Plugin (代码覆盖率工具,版本 0.7.8)

构建指南

Maven 构建

  • 构建命令:
    • 清理构建: mvn clean
    • 编译项目: mvn compile
    • 打包项目: mvn package
    • 安装到本地仓库: mvn install
    • 部署项目: mvn deploy
  • 构建流程:
    • Maven 的构建流程主要包括以下阶段:
      1. 清理 (clean): 删除之前构建生成的文件。
      2. 编译 (compile): 编译项目的源代码。
      3. 测试 (test): 运行单元测试(如配置了 Jacoco 插件,会生成覆盖率报告)。
      4. 打包 (package): 将编译后的代码打包成 JAR 或 WAR 文件(本例中打包为 demo.jar)。
      5. 验证 (verify): 检查项目是否有效。
      6. 安装 (install): 将打包的文件安装到本地 Maven 仓库。
      7. 部署 (deploy): 将打包的文件部署到远程仓库。
    • 本例中配置了 Jacoco 插件,会在 test 阶段生成代码覆盖率报告,并检查覆盖率是否达到阈值(jacoco.coverage=0.7)。
  • 打包目录:
    • 打包后的文件默认位于 target/ 目录下:
      • target/demo.jar: 主构建产物(由 <finalName>demo</finalName> 指定)。
      • target/coverage-reports/jacoco-ut.exec: Jacoco 生成的覆盖率数据文件。
      • target/site/jacoco-ut/: Jacoco 生成的 HTML 覆盖率报告目录。
    • 测试报告和覆盖率报告可通过 mvn site 生成,并保存在 target/site/ 目录中。

依赖管理

主要依赖

  • Spring Boot Starter: 提供 Spring Boot 的核心功能,版本由父 POM 管理(继承自 spring-boot-starter-parent 2.1.6.RELEASE)。
  • Spring Boot Starter Web: 提供 Spring MVC 和嵌入式 Tomcat 等 Web 开发支持,版本由父 POM 管理。
  • Lombok: 用于简化 Java 代码(如自动生成 getter/setter),标记为 optional,版本由父 POM 管理。
  • Spring Boot Starter Test: 提供测试支持(如 JUnit、Mockito),作用域为 test,版本由父 POM 管理。
  • Jacoco Maven Plugin (0.7.8): 用于代码覆盖率检查,独立指定版本。

添加/修改依赖

  • Maven:pom.xml 文件的 <dependencies> 标签中添加或修改 <dependency> 元素。例如:
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

依赖版本管理

  • Maven (<dependencyManagement>):
    此项目通过继承 spring-boot-starter-parent 隐式管理依赖版本,父 POM 定义了常用依赖的默认版本。如需覆盖版本,可在 <properties> 中定义或显式指定 <version>。例如:
    <properties>
        <spring-boot.version>3.0.0</spring-boot.version>
    </properties>

工程结构

demo/
├── pom.xml                  # Maven项目配置文件(行业惯例)
├── Dockerfile               # 容器化部署配置
├── .gitignore               # Git版本控制忽略规则
├── mvnw.cmd                 # Maven跨平台脚本(Windows)
├── mvnw                     # Maven跨平台脚本(Unix)
├── README.md                # 项目说明文档
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── demo/
│   │   │               └── DemoApplication.java  # Spring Boot启动类
│   │   └── resources/
│   │       └── application.yml  # Spring Boot配置文件
│   └── test/
│       ├── java/
│       │   └── com/
│       │       └── example/
│       │           └── demo/
│       │               └── DemoApplicationTests.java  # 单元测试类
│       └── resources/       # 测试资源配置(推测)
└── .git/                    # Git版本控制目录
    ├── hooks/               # Git钩子脚本模板
    ├── info/                # 仓库元信息
    ├── logs/                # 操作日志记录
    ├── objects/             # Git数据对象存储
    └── refs/                # 分支和标签引用

命名规约:采用标准Maven项目结构命名(如src/main/java),包路径符合Java反向域名规范(com.example.demo) 分层结构:标准Spring Boot分层,包含主程序入口(DemoApplication)、资源配置(application.yml)和单元测试层(test目录) 扩展设计:通过独立Dockerfile支持容器化部署,Maven Wrapper(mvnw)保证构建环境一致性,.git目录体现版本控制扩展能力