|
|
<?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.0,MyBatis 是一个优秀的持久层框架,
|
|
|
通过这个启动器可以方便地在 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.13,Jackson 是常用的 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.18,Druid 是一款性能优秀的数据库连接池,除了基本的连接管理功能外,
|
|
|
还提供了丰富的监控、统计、扩展等功能,能够更好地管理数据库连接,提升数据库访问的效率和稳定性 -->
|
|
|
<dependency>
|
|
|
<groupId>com.alibaba</groupId>
|
|
|
<artifactId>druid</artifactId>
|
|
|
<version>1.0.18</version>
|
|
|
</dependency>
|
|
|
<!-- 工具包,各种数据结构 -->
|
|
|
<!-- 引入 Google 的 Guava 依赖,指定版本为 20.0,Guava 是一个包含了很多实用工具类和集合扩展的库,
|
|
|
例如提供了更方便的字符串处理、集合操作、缓存机制等功能,可以提高 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.3,Joda-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.0,PageHelper 是一款常用的 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.4,JSqlParser 是一个 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.1,ZXing 是一个用于处理二维码和条形码的开源库,
|
|
|
可以用于生成、解析二维码和条形码等操作,在涉及到扫码相关业务功能的项目中会用到 -->
|
|
|
<dependency>
|
|
|
<groupId>com.google.zxing</groupId>
|
|
|
<artifactId>core</artifactId>
|
|
|
<version>2.1</version>
|
|
|
</dependency>
|
|
|
<!-- 引入 Google 的 Gson 依赖,指定版本为 2.8.2,Gson 是一个用于将 Java 对象和 JSON 格式数据进行相互转换的库,
|
|
|
与前面提到的 Jackson 类似,但使用方式和特点有所不同,开发者可以根据项目需求选择使用 -->
|
|
|
<dependency>
|
|
|
<groupId>com.google.code.gson</groupId>
|
|
|
<artifactId>gson</artifactId>
|
|
|
<version>2.8.2</version>
|
|
|
</dependency>
|
|
|
<!-- 引入 Hamcrest 核心依赖,指定版本为 1.3,Hamcrest 是一个用于编写测试断言的框架,提供了更丰富、易读的断言方式,
|
|
|
常用于单元测试等场景中,方便对测试结果进行验证 -->
|
|
|
<dependency>
|
|
|
<groupId>org.hamcrest</groupId>
|
|
|
<artifactId>hamcrest-core</artifactId>
|
|
|
<version>1.3</version>
|
|
|
</dependency>
|
|
|
<!-- redis -->
|
|
|
<!-- 引入 Jedis 依赖,指定版本为 2.9.0,Jedis 是 Redis 的 Java 客户端库,用于在 Java 项目中与 Redis 缓存数据库进行交互,
|
|
|
比如向 Redis 中存储数据、获取数据、执行 Redis 支持的各种命令等,实现缓存功能或者其他基于 Redis 的业务逻辑 -->
|
|
|
<dependency>
|
|
|
<groupId>redis.clients</groupId>
|
|
|
<artifactId>jedis</artifactId>
|
|
|
<version>2.9.0</version>
|
|
|
</ |