当前位置: 首页 > news >正文

一个教学项目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 认证、代码生成等功能。

相关文章:

  • DevOps软件开发流程规范
  • 【笔记】NVIDIA AI Workbench 中安装 PyTorch
  • 山东大学软件学院项目实训-基于大模型的模拟面试系统-面试对话标题自动总结
  • 【计算机存储架构】层次化存储架构
  • JAVA-springboot Filter过滤器
  • Amazon Linux 2023 系统上 Radius 部署文档
  • 1Panel 部署 OpenResty + Redis 实现 IP 动态封禁教程
  • gbase8s数据库获取jdbc/odbc协议的几种方式
  • 合同管理登记台账是什么?合同管理登记台账有哪些功能?
  • 基于GA遗传优化的PID控制器最优控制参数整定matlab仿真
  • Matlab解决无法读取路径中的空格
  • 前端实战:用 HTML+JS 打造可拖动图像对比滑块,提升视觉交互体
  • 硬件行业职业规划四篇
  • (功能测试Charles)如何抓取手机http的报文
  • 软件测试之基于博客系统项目的功能测试
  • 解锁Flink CDC:实时数据同步秘籍
  • 速盾:高防CDN可以加速数据库吗?
  • 使用spring-ai-alibaba接入大模型
  • SAP学习笔记 - 开发32 - 前端Fiori开发 Content Density(内容密度)
  • 23、Python字符串核心机制解析:驻留原理、对象比较与成员检测实战
  • 大连网站排名优化价格/关于软文营销的案例
  • 最近国内新闻大事20条/论坛seo招聘
  • 绍兴cms建站模板/企业网络营销推广方案策划
  • 佛山网站建设 奇锐科技/手机优化大师官方免费下载
  • 站长工具ip地址/推广项目的平台
  • 给企业做网站推广好么/网站优化排名工具