You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tet/pom.xml

244 lines
17 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?xml version="1.0" encoding="UTF-8"?>
<!-- 这是 Maven 项目对象模型POM配置文件的根元素声明了 XML 文档的版本和编码格式,
同时通过 xmlns 和 xsi:schemaLocation 属性定义了 XML 命名空间以及对应的 XML 模式文档位置,以遵循 Maven POM 4.0.0 版本的规范 -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- 定义 Maven 项目对象模型的版本,这里使用的是 4.0.0 版本,它规定了整个 pom.xml 文件的基本结构和语法规则 -->
<modelVersion>4.0.0</modelVersion>
<!-- 配置项目的父级依赖,通过指定 groupId、artifactId 和 version当前项目继承自 Spring Boot 的启动器父项目,
这样可以复用父项目中定义的很多默认配置,比如插件配置、依赖管理等,使得子项目的配置更加简洁,保持一致性 -->
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.3.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<!-- 当前项目的 groupId通常代表组织或公司等的唯一标识与 artifactId 一起构成了项目在 Maven 仓库中的唯一坐标,
用于区分不同来源的项目,这里标识该项目属于 com.njupt.swg 这个组织或模块下 -->
<groupId>com.njupt.swg</groupId>
<!-- 当前项目的 artifactId用于唯一标识项目在 Maven 仓库中的名称,通常与项目的实际名称相关,
这里表示该项目名为 spring-cloud-for-snailmall -->
<artifactId>spring-cloud-for-snailmall</artifactId>
<!-- 当前项目的版本号,采用了 0.0.1-SNAPSHOT 这种快照版本形式,意味着这是一个处于开发阶段、不稳定的版本,
常用于项目开发过程中,后续随着项目的完善和发布,会更新为正式的版本号 -->
<version>0.0.1-SNAPSHOT</version>
<!-- 项目的显示名称,方便在 Maven 相关工具或者项目管理场景中直观地识别该项目 -->
<name>spring-cloud-for-snailmall</name>
<!-- 项目的简要描述,清晰说明了该项目是聚合工程的父工程,即它作为一个父项目,会包含多个子模块项目,用于统一管理这些子项目的配置等 -->
<description>聚合工程的父工程</description>
<!-- 指定项目的打包类型为 pom表明这是一个聚合工程的父工程主要用于管理子模块的依赖、构建等配置本身不会生成可执行的代码包
而是协调各个子模块的构建过程 -->
<packaging>pom</packaging>
<!-- 定义项目包含的子模块列表,在这里罗列了多个子模块的名称,每个子模块在 Maven 构建时会被当作独立的项目进行处理,
但又能从父项目这里继承一些通用的配置,方便进行统一管理和构建,比如各个子模块可以继承这里定义的依赖版本等 -->
<modules>
<module>snailmall-eureka-server</module>
<module>snailmall-config-server</module>
<module>snailmall-category-service</module>
<module>snailmall-api-gateway</module>
<module>snailmall-product-service</module>
<module>snailmall-cart-service</module>
<module>snailmall-user-service</module>
<module>snailmall-shipping-service</module>
<module>snailmall-keygen-service</module>
<module>snailmall-order-service</module>
</modules>
<!-- 定义项目的一些通用属性,这些属性可以在整个项目的构建过程以及依赖配置等地方被引用,方便统一管理一些项目相关的设置 -->
<properties>
<!-- 指定项目构建时源文件的编码格式为 UTF-8确保不同环境下代码中的中文等字符能正确处理避免乱码问题 -->
<project.build.sourceencoding>UTF-8</project.build.sourceencoding>
<!-- 指定项目生成报告(如测试报告等)时输出的编码格式为 UTF-8保证报告内容的字符编码正确便于查看和分析 -->
<project.reporting.outputencoding>UTF-8</project.reporting.outputencoding>
<!-- 指定项目使用的 Java 版本为 1.8,整个项目在编译、运行等过程中会基于这个 Java 版本进行相应的处理 -->
<java.version>1.8</java.version>
</properties>
<!-- 依赖管理部分,在这里定义了项目所依赖的各种外部库、框架等资源的版本信息,
子项目在添加依赖时无需指定版本号(除非要使用特定版本,可覆盖此处定义的版本),就能自动继承这些统一管理的依赖版本,
方便控制项目整体的依赖版本一致性,避免版本冲突等问题 -->
<dependencyManagement>
<dependencies>
<!-- Spring Cloud 依赖管理,通过导入 Spring Cloud 的依赖管理 POM 文件,统一管理 Spring Cloud 相关依赖的版本,
使得项目中使用 Spring Cloud 各个组件时能保证版本的兼容性和一致性,避免因版本不一致导致的问题 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.RELEASE</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- MYSQL -->
<!-- 引入 MySQL 的 JDBC 驱动依赖,指定版本为 5.1.46,用于在项目中建立与 MySQL 数据库的连接,使得项目可以通过 JDBC 规范与 MySQL 数据库进行交互,
执行 SQL 语句实现数据的持久化操作,如查询、插入、更新和删除数据等 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.46</version>
</dependency>
<!-- mybatis -->
<!-- 引入 MyBatis 与 Spring Boot 集成的启动器依赖,指定版本为 1.2.0MyBatis 是一个优秀的持久层框架,
通过这个启动器可以方便地在 Spring Boot 项目中使用 MyBatis 进行数据库访问操作,结合 XML 配置文件或者注解来编写 SQL 语句,实现数据持久化 -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.2.0</version>
</dependency>
<!-- json 序列化和反序列 -->
<!-- 引入 Jackson 的 mapper 依赖,指定版本为 1.9.13Jackson 是常用的 JSON 处理库,用于在 Java 对象和 JSON 格式数据之间进行序列化和反序列化操作,
比如将 Java 对象转换为 JSON 字符串发送给前端,或者将接收到的 JSON 数据解析为 Java 对象,在 Web 开发中经常会用到 -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- 引入另一个 Jackson 相关依赖,用于处理特定格式(如 Avro 格式)的 JSON 数据序列化和反序列化,指定版本为 2.9.0
在需要处理特殊格式 JSON 数据的场景下发挥作用 -->
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-avro</artifactId>
<version>2.9.0</version>
</dependency>
<!-- druid -->
<!-- 引入阿里巴巴的 Druid 依赖,指定版本为 1.0.18Druid 是一款性能优秀的数据库连接池,除了基本的连接管理功能外,
还提供了丰富的监控、统计、扩展等功能,能够更好地管理数据库连接,提升数据库访问的效率和稳定性 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.0.18</version>
</dependency>
<!-- 工具包,各种数据结构 -->
<!-- 引入 Google 的 Guava 依赖,指定版本为 20.0Guava 是一个包含了很多实用工具类和集合扩展的库,
例如提供了更方便的字符串处理、集合操作、缓存机制等功能,可以提高 Java 开发的效率,减少重复造轮子 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
<!-- 引入 Apache Commons Lang3 依赖,指定版本为 3.5,它提供了大量对 Java 基本类型、字符串、数组等操作的实用工具方法,
比如字符串的判空、格式化,数组的拷贝、填充等功能,补充了 Java 标准库中一些功能的不足,方便日常开发 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.5</version>
</dependency>
<!-- 引入 Commons Collections 依赖,指定版本为 3.2.1,它提供了一系列扩展的集合类和集合相关的工具方法,
比如各种特殊的集合实现(如不可变集合、多值映射等)以及对集合进行操作的便捷方法,丰富了 Java 集合框架的功能 -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<!-- 时间处理 -->
<!-- 引入 Joda-Time 依赖,指定版本为 2.3Joda-Time 是一个处理日期和时间的强大库,提供了比 Java 标准库中更方便、灵活的日期时间操作方法,
例如日期的格式化、解析、计算时间间隔等功能,在涉及到复杂的日期时间处理业务场景中很实用 -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.3</version>
</dependency>
<!-- ftpclient -->
<!-- 引入 Commons Net 依赖,指定版本为 3.1,常用于实现 FTP 客户端相关功能,比如与 FTP 服务器进行文件传输、目录操作等,
在需要进行 FTP 相关业务操作的项目中会用到这个库 -->
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.1</version>
</dependency>
<!-- file upload -->
<!-- 引入 Commons Fileupload 依赖,指定版本为 1.2.2,用于在项目中实现文件上传功能,提供了方便的 API 来处理文件上传的相关逻辑,
配合服务器端的配置,可以让用户通过网页等方式上传文件到服务器 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.2</version>
</dependency>
<!-- 引入 Commons IO 依赖,指定版本为 2.0.1,它提供了一系列对文件和输入输出流操作的实用工具方法,
可以简化文件读写、复制、移动等操作的代码编写,提高文件处理相关的开发效率 -->
<dependency>
<groupId>commons-io</artifactId>
<artifactId>commons-io</artifactId>
<version>2.0.1</version>
</dependency>
<!-- mybatis 分页 -->
<!-- 引入 PageHelper 依赖,指定版本为 4.1.0PageHelper 是一款常用的 MyBatis 分页插件,它能够方便地在 MyBatis 进行数据库查询时实现分页功能,
只需简单配置和调用相关 API就能轻松获取分页数据简化了分页查询的开发难度 -->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>4.1.0</version>
</dependency>
<!-- 引入 MyBatis Paginator 依赖,指定版本为 1.2.17,它同样是用于在 MyBatis 中实现分页功能的工具,提供了另一种分页相关的实现方式和功能扩展,
可以根据具体项目需求选择使用,与其他分页插件配合使用时也能满足更复杂的分页场景 -->
<dependency>
<groupId>com.github.miemiedev</groupId>
<artifactId>mybatis-paginator</artifactId>
<version>1.2.17</version>
</dependency>
<!-- 引入 JSqlParser 依赖,指定版本为 0.9.4JSqlParser 是一个 SQL 解析器库,可用于解析、修改和分析 SQL 语句,
在一些需要对 SQL 语句进行动态处理、验证或者优化的场景中会发挥作用,比如根据不同条件动态拼接 SQL 等情况 -->
<dependency>
<groupId>com.github.jsqlparser</groupId>
<artifactId>jsqlparser</artifactId>
<version>0.9.4</version>
</dependency>
<!-- alipay 与支付宝 demo 中依赖的包的版本是一致的 -->
<!-- 引入 Commons Codec 依赖,指定版本为 1.10,它提供了一些常用的编解码工具方法,比如对字符串进行加密、解密、编码转换等操作,
在与支付宝等涉及数据加密、签名验证等交互场景中可能会用到 -->
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<!-- 引入 Commons Configuration 依赖,指定版本为 1.10,它用于读取和管理各种配置文件,提供了方便的 API 来获取配置项的值,
可以灵活地处理项目中的配置信息,比如读取 properties 文件、XML 配置文件等中的配置参数 -->
<dependency>
<groupId>commons-configuration</groupId>
<artifactId>commons-configuration</artifactId>
<version>1.10</version>
</dependency>
<!-- 引入 Commons Lang 依赖,指定版本为 2.6,它提供了一些基础的字符串、数组等操作的工具方法,虽然部分功能在后续的 Commons Lang3 中有所更新和扩展,
但在一些旧项目或者特定场景下可能还会用到这个版本的相关功能 -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!-- 引入 Commons Logging 依赖,指定版本为 1.2,它是一个通用的日志抽象层,为不同的日志实现框架(如 Log4j、Logback 等)提供了统一的接口,
方便在项目中切换或集成不同的日志框架,增强了日志管理的灵活性 -->
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.2</version>
</dependency>
<!-- 引入 Google ZXing 核心依赖,指定版本为 2.1ZXing 是一个用于处理二维码和条形码的开源库,
可以用于生成、解析二维码和条形码等操作,在涉及到扫码相关业务功能的项目中会用到 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>2.1</version>
</dependency>
<!-- 引入 Google 的 Gson 依赖,指定版本为 2.8.2Gson 是一个用于将 Java 对象和 JSON 格式数据进行相互转换的库,
与前面提到的 Jackson 类似,但使用方式和特点有所不同,开发者可以根据项目需求选择使用 -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.2</version>
</dependency>
<!-- 引入 Hamcrest 核心依赖,指定版本为 1.3Hamcrest 是一个用于编写测试断言的框架,提供了更丰富、易读的断言方式,
常用于单元测试等场景中,方便对测试结果进行验证 -->
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
</dependency>
<!-- redis -->
<!-- 引入 Jedis 依赖,指定版本为 2.9.0Jedis 是 Redis 的 Java 客户端库,用于在 Java 项目中与 Redis 缓存数据库进行交互,
比如向 Redis 中存储数据、获取数据、执行 Redis 支持的各种命令等,实现缓存功能或者其他基于 Redis 的业务逻辑 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</