一个教学项目pom.xml杂记

1. 项目基本信息

复制代码
<modelVersion>4.0.0</modelVersion>
<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.7.13</version>
</parent>
<groupId>com.neuedu</groupId>
<artifactId>his-web</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>his-web</name>
<description>his-web</description>
  • 继承 Spring Boot 父项目 :通过<parent>引用 Spring Boot 官方父项目(版本 2.7.13),自动继承 Spring Boot 的依赖管理和插件配置。
  • 项目坐标
    • groupId:组织 / 公司域名倒写(com.neuedu),用于唯一标识项目。
    • artifactId:项目名称(his-web),通常与模块名一致。
    • version:版本号(0.0.1-SNAPSHOT),SNAPSHOT表示开发版本,正式发布时需改为固定版本(如1.0.0)。

2. 属性配置

复制代码
<properties>
    <java.version>17</java.version>
</properties>
  • 指定 Java 版本:要求项目使用 Java 17 编译(需确保本地环境安装了 Java 17)。

3. 依赖管理(dependencies)

这里列出了项目运行和开发所需的所有库,Maven 会自动下载这些依赖及其传递依赖。

核心框架依赖
复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  • Spring Boot Web Starter:包含 Spring MVC、Tomcat 服务器等,用于开发 Web 应用(如 REST 接口)。
数据库与 ORM 依赖
复制代码
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.2</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>3.5.1</version>
</dependency>
<dependency>
    <groupId>com.mysql</groupId>
    <artifactId>mysql-connector-j</artifactId>
    <scope>runtime</scope>
</dependency>
  • MyBatis-Plus
    • mybatis-plus-boot-starter:MyBatis-Plus 与 Spring Boot 的集成包,简化数据库操作(如自动 CRUD、分页等)。
    • mybatis-plus-generator:代码生成器,可自动生成实体类、Mapper、Service 等代码。
  • MySQL 驱动mysql-connector-j用于连接 MySQL 数据库,runtime表示仅在运行时需要,编译时不需要。
工具类依赖
复制代码
<dependency>
    <groupId>org.apache.velocity</groupId>
    <artifactId>velocity-engine-core</artifactId>
    <version>2.1</version>
</dependency>
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.7.graal</version>
</dependency>
  • Velocity:模板引擎,用于 MyBatis-Plus 代码生成器生成文件时的模板渲染。
  • FastJSON:阿里巴巴的 JSON 解析库,用于对象与 JSON 的互转(如接口返回 JSON 数据)。
辅助工具
复制代码
<dependency>
    <groupId>org.projectlombok</groupId>
    <artifactId>lombok</artifactId>
    <optional>true</optional>
</dependency>
<dependency>
    <groupId>com.auth0</groupId>
    <artifactId>java-jwt</artifactId>
    <version>3.19.2</version>
</dependency>
  • Lombok :通过注解简化 Java 代码(如@Data自动生成 Getter/Setter),需 IDE 安装 Lombok 插件。
  • Java-JWT:用于生成和验证 JWT 令牌,实现接口认证(如用户登录后的 token 管理)。
测试依赖
复制代码
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-test</artifactId>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.13.2</version>
</dependency>
  • 测试框架spring-boot-starter-test包含 JUnit 等测试工具,scope=test表示仅在测试阶段使用。

4. 构建配置(build)

复制代码
<build>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>
  • 资源处理
    • 确保src/main/resources目录下的文件(如配置文件、静态资源)被正确打包,filtering=true表示支持属性替换(如application.properties中的变量)。
  • Spring Boot Maven 插件
    • 用于将项目打包为可执行的 JAR/WAR 包,支持mvn spring-boot:run直接运行项目。

5. 注意事项

  • Spring Boot 与 MyBatis-Plus 兼容性
    际 MyBatis-Plus 3.5.1 + 已支持 Spring Boot 3.x。我们还是使用 Spring Boot 2.7.13(2.x 版本),升级也许需要还调整。
    • 若后续升级到 Spring Boot 3.x,需将 MyBatis-Plus 版本升级到 3.5.1+,并确保 Java 版本为 17+。
  • 依赖版本冲突
    使用mvn dependency:tree命令检查依赖树,避免版本冲突(如旧版 MyBatis 与 MyBatis-Plus 冲突)。

总之:

我们配置了一个基于 Spring Boot 2.7 的 Web 项目,集成了 MyBatis-Plus 操作数据库,使用 MySQL 作为数据源,并包含了 JSON 解析、JWT 认证、代码生成等功能。