一个教学项目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
直接运行项目。
- 用于将项目打包为可执行的 JAR/WAR 包,支持
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 认证、代码生成等功能。