<?xml version="1.0" encoding="UTF-8"?>
<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">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.ballcat</groupId>
		<artifactId>ballcat-build</artifactId>
		<version>${revision}</version>
		<relativePath>../pom.xml</relativePath>
	</parent>

	<artifactId>ballcat-dependencies</artifactId>
	<version>${revision}</version>
	<packaging>pom</packaging>

	<name>${project.groupId}:${project.artifactId}</name>
	<description>Ballcat Dependencies</description>

	<properties>
		<!-- Ballcat Version 保留 revision 变量,否则 idea 会提示错误,不影响工作,但是很难受 -->
		<ballcat.version>${revision}</ballcat.version>

		<!-- Dependency Versions for BOM -->
		<alipay-sdk.version>4.11.28.ALL</alipay-sdk.version>
		<ahocorasick.version>0.6.3</ahocorasick.version>
		<fastexcel.version>1.2.0</fastexcel.version>
		<fastjson.version>1.2.83</fastjson.version>
		<hutool.version>5.8.16</hutool.version>
		<io.swagger.v3.version>2.2.7</io.swagger.v3.version>
		<ip2region.version>2.7.0</ip2region.version>
		<jsoup.version>1.15.3</jsoup.version>
		<jsqlparser.version>4.3</jsqlparser.version>
		<kafka.version>2.6.3</kafka.version>
		<lombok.version>1.18.28</lombok.version>
		<lombok-mapstruct-binding.version>0.2.0</lombok-mapstruct-binding.version>
		<mapstruct.version>1.5.5.Final</mapstruct.version>
		<mybatis-plus.version>3.5.3.2</mybatis-plus.version>
		<mybatis.version>3.5.13</mybatis.version>
		<mybatis-spring.version>2.1.1</mybatis-spring.version>
		<mybatis-spring-boot-starter.version>2.3.1</mybatis-spring-boot-starter.version>
		<poi.version>5.2.5</poi.version>
		<rocketmq.version>2.2.0</rocketmq.version>
		<software.amazon.awssdk.version>2.20.70</software.amazon.awssdk.version>
		<spring-authorization-server.version>0.4.5</spring-authorization-server.version>
		<spring-boot.version>2.7.18</spring-boot.version>
		<spring-cloud.version>2021.0.9</spring-cloud.version>
		<springdoc-openapi.verison>1.7.0</springdoc-openapi.verison>
		<springfox.version>3.0.0</springfox.version>
		<swagger.version>1.6.8</swagger.version>
		<tika.version>2.9.4</tika.version>
		<virtual-currency.version>0.4.2</virtual-currency.version>
		<xxl-job.version>2.4.0</xxl-job.version>
		<!--grpc-->
		<grpc.version>1.53.0</grpc.version>
		<protobuf.version>3.21.7</protobuf.version>
		<protobuf-maven.version>0.6.1</protobuf-maven.version>
		<os-maven.version>1.7.1</os-maven.version>
		<protobuf.javax.annotation.version>1.3.2</protobuf.javax.annotation.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<!-- ==================== 第三方 bom 导入 ================== -->
			<!-- 注意 bom 导入有优先级顺序,写在前面的优先级高 -->
			<!-- spring boot 依赖管理 -->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>${spring-boot.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<!-- spring cloud 依赖管理 -->
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<!-- spring-openapi 依赖管理 -->
			<dependency>
				<groupId>org.springdoc</groupId>
				<artifactId>springdoc-openapi</artifactId>
				<version>${springdoc-openapi.verison}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!-- 亚马逊云 Java sdk -->
			<dependency>
				<groupId>software.amazon.awssdk</groupId>
				<artifactId>bom</artifactId>
				<version>${software.amazon.awssdk.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!-- GRPC -->
			<dependency>
				<groupId>io.grpc</groupId>
				<artifactId>grpc-bom</artifactId>
				<version>${grpc.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!-- hutool工具类 -->
			<dependency>
				<groupId>cn.hutool</groupId>
				<artifactId>hutool-bom</artifactId>
				<version>${hutool.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!-- ======================= 第三方依赖 ===================== -->
			<!-- fast excel-->
			<dependency>
				<groupId>cn.idev.excel</groupId>
				<artifactId>fastexcel</artifactId>
				<version>${fastexcel.version}</version>
			</dependency>
			<!-- fastjson -->
			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>fastjson</artifactId>
				<version>${fastjson.version}</version>
				<optional>true</optional>
			</dependency>
			<!-- 支付宝支付 -->
			<dependency>
				<groupId>com.alipay.sdk</groupId>
				<artifactId>alipay-sdk-java</artifactId>
				<version>${alipay-sdk.version}</version>
			</dependency>
			<dependency>
				<groupId>com.baomidou</groupId>
				<artifactId>mybatis-plus-annotation</artifactId>
				<version>${mybatis-plus.version}</version>
			</dependency>
			<dependency>
				<groupId>com.baomidou</groupId>
				<artifactId>mybatis-plus-boot-starter</artifactId>
				<version>${mybatis-plus.version}</version>
			</dependency>
			<dependency>
				<groupId>com.baomidou</groupId>
				<artifactId>mybatis-plus-core</artifactId>
				<version>${mybatis-plus.version}</version>
			</dependency>
			<!--mybatis plus extension,包含了mybatis plus core-->
			<dependency>
				<groupId>com.baomidou</groupId>
				<artifactId>mybatis-plus-extension</artifactId>
				<version>${mybatis-plus.version}</version>
			</dependency>
			<!-- jsqlparser -->
			<dependency>
				<groupId>com.github.jsqlparser</groupId>
				<artifactId>jsqlparser</artifactId>
				<version>${jsqlparser.version}</version>
			</dependency>
			<dependency>
				<groupId>com.jcraft</groupId>
				<artifactId>jsch</artifactId>
				<version>0.1.55</version>
			</dependency>
			<dependency>
				<groupId>com.nimbusds</groupId>
				<artifactId>nimbus-jose-jwt</artifactId>
				<version>9.37.2</version>
			</dependency>
			<dependency>
				<groupId>com.nimbusds</groupId>
				<artifactId>oauth2-oidc-sdk</artifactId>
				<version>9.20</version>
			</dependency>
			<!--xxl-job-->
			<dependency>
				<groupId>com.xuxueli</groupId>
				<artifactId>xxl-job-core</artifactId>
				<version>${xxl-job.version}</version>
			</dependency>
			<!-- ftp用 -->
			<dependency>
				<groupId>commons-net</groupId>
				<artifactId>commons-net</artifactId>
				<version>3.9.0</version>
			</dependency>

			<dependency>
				<groupId>io.springfox</groupId>
				<artifactId>springfox-boot-starter</artifactId>
				<version>${springfox.version}</version>
			</dependency>
			<dependency>
				<groupId>io.springfox</groupId>
				<artifactId>springfox-swagger-ui</artifactId>
				<version>${springfox.version}</version>
			</dependency>
			<!-- SpringFox -->
			<dependency>
				<groupId>io.springfox</groupId>
				<artifactId>springfox-swagger2</artifactId>
				<version>${springfox.version}</version>
			</dependency>
			<!--swagger v2-->
			<dependency>
				<groupId>io.swagger</groupId>
				<artifactId>swagger-annotations</artifactId>
				<version>${swagger.version}</version>
			</dependency>
			<dependency>
				<groupId>io.swagger</groupId>
				<artifactId>swagger-models</artifactId>
				<version>${swagger.version}</version>
			</dependency>
			<!--swagger v3-->
			<dependency>
				<groupId>io.swagger.core.v3</groupId>
				<artifactId>swagger-annotations</artifactId>
				<version>${io.swagger.v3.version}</version>
			</dependency>
			<dependency>
				<groupId>io.swagger.core.v3</groupId>
				<artifactId>swagger-models</artifactId>
				<version>${io.swagger.v3.version}</version>
			</dependency>
			<!-- 虚拟货币处理 -->
			<dependency>
				<groupId>live.lingting</groupId>
				<artifactId>virtual-currency-all</artifactId>
				<version>${virtual-currency.version}</version>
			</dependency>
			<!-- Aho-Corasick keyword automaton -->
			<dependency>
				<groupId>org.ahocorasick</groupId>
				<artifactId>ahocorasick</artifactId>
				<version>${ahocorasick.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.kafka</groupId>
				<artifactId>kafka-clients</artifactId>
				<version>${kafka.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.kafka</groupId>
				<artifactId>kafka-streams</artifactId>
				<version>${kafka.version}</version>
			</dependency>
			<!--kafka MQ-->
			<dependency>
				<groupId>org.apache.kafka</groupId>
				<artifactId>kafka_2.12</artifactId>
				<version>${kafka.version}</version>
			</dependency>
			<!--poi 依赖 处理-->
			<dependency>
				<groupId>org.apache.poi</groupId>
				<artifactId>poi-ooxml</artifactId>
				<version>${poi.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.rocketmq</groupId>
				<artifactId>rocketmq-spring-boot-starter</artifactId>
				<version>${rocketmq.version}</version>
			</dependency>
			<!-- tika -->
			<dependency>
				<groupId>org.apache.tika</groupId>
				<artifactId>tika-core</artifactId>
				<version>${tika.version}</version>
			</dependency>

			<!--region ============= 定义ballcat 自身模块版本 ================== -->
			<!-- common 基础 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-common-core</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-common-model</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-common-util</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- desensitize 脱敏 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-desensitize</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-desensitize-logback</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-desensitize</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- dingtalk 钉钉 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-dingtalk</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- i18n 国际化 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-i18n</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- idempotent 幂等 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-idempotent</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- kafka 消息队列 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-kafka</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-kafka-stream</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- ntp 时间同步 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-mybatis-plus</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-ntp</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- log 日志 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-operation-log</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- pay 支付 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-pay-ali</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-pay-virtual</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-pay-wx</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- redis -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-redis</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- security 安全 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-security-core</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- datascope 数据权限 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-datascope</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-dingtalk</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- excel -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-fastexcel</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- fieldcrypt 数据库字段加解密 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-fieldcrypt-core</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-fieldcrypt-mybatis</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-fieldcrypt-mybatis-plus</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-fieldcrypt</artifactId>
				<version>${ballcat.version}</version>
			</dependency>


			<!-- file 文件 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-file</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- grpc -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-grpc</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-grpc-client</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-grpc-server</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-i18n</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-idempotent</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- ip 解析 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-ip2region</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-kafka</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- maill 邮件 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-mail</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- swagger openapi 文档 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-openapi</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-operation-log</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- oss 对象存储 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-oss</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-pay</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-quartz</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-redis</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- sms 短信 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-sms</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- web -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-web</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-websocket</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- xss 防注入 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-xss</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- job 定时任务 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-boot-starter-xxljob</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-security</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-security-oauth2-authorization-server</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-security-oauth2-core</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-spring-security-oauth2-resource-server</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- tesseract OCR 文字识别 -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-tesseract</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-web</artifactId>
				<version>${ballcat.version}</version>
			</dependency>

			<!-- websocket -->
			<dependency>
				<groupId>org.ballcat</groupId>
				<artifactId>ballcat-websocket</artifactId>
				<version>${ballcat.version}</version>
			</dependency>
			<!--jsoup-->
			<dependency>
				<groupId>org.jsoup</groupId>
				<artifactId>jsoup</artifactId>
				<version>${jsoup.version}</version>
			</dependency>
			<dependency>
				<groupId>org.lionsoul</groupId>
				<artifactId>ip2region</artifactId>
				<version>${ip2region.version}</version>
			</dependency>
			<!-- bean 转换工具类 -->
			<dependency>
				<groupId>org.mapstruct</groupId>
				<artifactId>mapstruct</artifactId>
				<version>${mapstruct.version}</version>
			</dependency>
			<!-- mybatis -->
			<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis</artifactId>
				<version>${mybatis.version}</version>
			</dependency>
			<dependency>
				<groupId>org.mybatis</groupId>
				<artifactId>mybatis-spring</artifactId>
				<version>${mybatis-spring.version}</version>
			</dependency>
			<dependency>
				<groupId>org.mybatis.spring.boot</groupId>
				<artifactId>mybatis-spring-boot-starter</artifactId>
				<version>${mybatis-spring-boot-starter.version}</version>
			</dependency>
			<!-- lombok 代码简化处理器 -->
			<dependency>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok</artifactId>
				<version>${lombok.version}</version>
			</dependency>
			<!-- sas 授权服务器 -->
			<dependency>
				<groupId>org.springframework.security</groupId>
				<artifactId>spring-security-oauth2-authorization-server</artifactId>
				<version>${spring-authorization-server.version}</version>
			</dependency>
			<!--endregion ============= 结束定义ballcat 自身模块版本 =========== -->
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>flatten-maven-plugin</artifactId>
				<version>${flatten-maven-plugin.version}</version>
				<configuration>
					<!-- BOM mode: removes parent, keeps dependencyManagement and properties -->
					<flattenMode>bom</flattenMode>
					<updatePomFile>true</updatePomFile>
				</configuration>
				<executions>
					<execution>
						<id>flatten</id>
						<goals>
							<goal>flatten</goal>
						</goals>
						<phase>process-resources</phase>
					</execution>
					<execution>
						<id>flatten.clean</id>
						<goals>
							<goal>clean</goal>
						</goals>
						<phase>clean</phase>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

</project>