<?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>
    <groupId>com.toolkit.platform</groupId>
    <artifactId>toolkit-dependencies</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Toolkit Dependencies</name>
    <description>统一依赖管理模块，提供版本管理和依赖控制</description>

    <properties>
        <!-- Spring Boot 版本 -->
        <spring-boot.version>2.7.18</spring-boot.version>

        <!-- 业务依赖版本 -->
        <api.commont.version>XLS1.0-SNAPSHOT</api.commont.version>

        <!-- 核心依赖版本 -->
        <mybatis-plus.version>3.5.15</mybatis-plus.version>
        <mybatis-plus-generator.version>3.5.15</mybatis-plus-generator.version>
        <druid.version>1.2.23</druid.version>
        <jaxb.version>2.3.1</jaxb.version>
        <!-- 消息队列版本 -->
        <spring-kafka.version>2.9.2</spring-kafka.version>
        <kafka-clients.version>3.6.2</kafka-clients.version>
        <aliyun-ons.version>1.8.8.5.Final</aliyun-ons.version>
        <opentracing-kafka-client.version>0.1.15</opentracing-kafka-client.version>

        <!-- 缓存版本 -->
        <lettuce.version>6.3.2.RELEASE</lettuce.version>
        <jedis.version>5.2.0</jedis.version>
        <redisson.version>4.1.0</redisson.version>

        <!-- 文件存储版本 -->
        <aliyun-oss.version>3.18.4</aliyun-oss.version>
        <minio.version>8.6.0</minio.version>

        <!-- 工具类版本 -->
        <lombok.version>1.18.42</lombok.version>
        <fastjson2.version>2.0.60</fastjson2.version>
        <hutool.version>5.8.38</hutool.version>
        <commons-lang3.version>3.20.0</commons-lang3.version>
        <commons-jexl3.version>3.2.1</commons-jexl3.version>
        <commons-io.version>2.21.0</commons-io.version>
        <commons-httpclient.version>3.1</commons-httpclient.version>
        <httpcomponents.version>4.5.14</httpcomponents.version>
        <guava.version>33.5.0-jre</guava.version>
        <p6spy.version>3.9.1</p6spy.version>
        <servlet.version>4.0.1</servlet.version>
        <jsch.version>0.1.55</jsch.version>
        <eu.version>1.20</eu.version>
        <net.version>2.4</net.version>
        <com.alibaba.version>2.6.12</com.alibaba.version>


        <!-- 测试版本 -->
        <junit.version>5.12.2</junit.version>
        <mockito.version>5.16.1</mockito.version>
        <embedded-redis.version>0.7.3</embedded-redis.version>

        <!-- 文件处理相关版本 -->
        <thumbnailator.version>0.4.20</thumbnailator.version>
        <tika-core.version>2.9.1</tika-core.version>
        <poi.version>5.5.1</poi.version>
        <commons-net.version>3.12.0</commons-net.version>

        <!-- 业务通用依赖版本 -->
        <commons-collections.version>3.2.2</commons-collections.version>
        <xxl-job.version>2.3.1-SNAPSHOT</xxl-job.version>
        <ezmorph.version>1.0.6</ezmorph.version>
        <servlet-api.version>2.5</servlet-api.version>
        <log4j2.version>2.23.1</log4j2.version>
        <dozer.version>5.5.1</dozer.version>
        <protostuff.version>1.8.0</protostuff.version>
        <fst.version>2.57</fst.version>
        <mysql-connector.version>8.2.0</mysql-connector.version>
        <avro.version>1.11.5</avro.version>
        <mahout-core.version>0.9</mahout-core.version>

        <!-- ES -->
        <elasticsearch.version>5.5.3</elasticsearch.version>

        <!-- DUBBO -->
        <dubbo.version>3.3.6</dubbo.version>
        <nacos.version>3.1.1</nacos.version>
        <nacos-config-spring-boot-starter.version>0.2.12</nacos-config-spring-boot-starter.version>
        <nacos-client.version>1.4.6</nacos-client.version>
        <!-- 阿里 -->
        <aliyun-edas.version>1.8.3</aliyun-edas.version>
        <fastjson.version>2.0.60</fastjson.version>
        <easy-excel.version>4.0.3</easy-excel.version>
        <edas-dubbo-extension.version>2.0.5</edas-dubbo-extension.version>
    </properties>

    <!-- 依赖管理 -->
    <dependencyManagement>
        <dependencies>
            <!-- Spring Boot BOM -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring-boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- 基础模块 -->
            <dependency>
                <groupId>com.toolkit.platform</groupId>
                <artifactId>toolkit-base</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- 核心模块 -->
            <dependency>
                <groupId>com.toolkit.platform</groupId>
                <artifactId>toolkit-core</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- 数据库模块 -->
            <dependency>
                <groupId>com.toolkit.platform</groupId>
                <artifactId>toolkit-db</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- 消息队列模块 -->
            <dependency>
                <groupId>com.toolkit.platform</groupId>
                <artifactId>toolkit-mq</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- 缓存模块 -->
            <dependency>
                <groupId>com.toolkit.platform</groupId>
                <artifactId>toolkit-redis</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- 文件存储模块 -->
            <dependency>
                <groupId>com.toolkit.platform</groupId>
                <artifactId>toolkit-file</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- Starter模块 -->
            <dependency>
                <groupId>com.toolkit.platform</groupId>
                <artifactId>toolkit-starter</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- MyBatis Plus -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-bom</artifactId>
                <version>${mybatis-plus.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- Druid -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid.version}</version>
            </dependency>

            <!-- Kafka -->
            <dependency>
                <groupId>org.springframework.kafka</groupId>
                <artifactId>spring-kafka</artifactId>
                <version>${spring-kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>${kafka-clients.version}</version>
            </dependency>
            <dependency>
                <groupId>io.opentracing.contrib</groupId>
                <artifactId>opentracing-kafka-client</artifactId>
                <version>${opentracing-kafka-client.version}</version>
                <optional>true</optional>
            </dependency>

            <!-- 阿里云ONS -->
            <dependency>
                <groupId>com.aliyun.openservices</groupId>
                <artifactId>ons-client</artifactId>
                <version>${aliyun-ons.version}</version>
            </dependency>

            <!-- Redis客户端 -->
            <dependency>
                <groupId>io.lettuce</groupId>
                <artifactId>lettuce-core</artifactId>
                <version>${lettuce.version}</version>
            </dependency>
            <dependency>
                <groupId>redis.clients</groupId>
                <artifactId>jedis</artifactId>
                <version>${jedis.version}</version>
            </dependency>
            <dependency>
                <groupId>org.redisson</groupId>
                <artifactId>redisson-spring-boot-starter</artifactId>
                <version>${redisson.version}</version>
            </dependency>

            <!-- 文件存储 -->
            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${aliyun-oss.version}</version>
            </dependency>
            <dependency>
                <groupId>io.minio</groupId>
                <artifactId>minio</artifactId>
                <version>${minio.version}</version>
            </dependency>

            <!-- 工具类 -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.alibaba.fastjson2</groupId>
                <artifactId>fastjson2</artifactId>
                <version>${fastjson2.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>${hutool.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons-lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-jexl3</artifactId>
                <version>${commons-jexl3.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commons-io.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-httpclient</groupId>
                <artifactId>commons-httpclient</artifactId>
                <version>${commons-httpclient.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpcomponents.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>4.4.16</version>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>

            <!-- 业务通用依赖 -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>${commons-collections.version}</version>
            </dependency>
            <dependency>
                <groupId>com.xuxueli</groupId>
                <artifactId>xxl-job-core</artifactId>
                <version>${xxl-job.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.ezmorph</groupId>
                <artifactId>ezmorph</artifactId>
                <version>${ezmorph.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>servlet-api</artifactId>
                <version>${servlet-api.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-api</artifactId>
                <version>${log4j2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-core</artifactId>
                <version>${log4j2.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-slf4j-impl</artifactId>
                <version>${log4j2.version}</version>
            </dependency>

            <!-- 文件处理相关依赖 -->
            <dependency>
                <groupId>net.coobird</groupId>
                <artifactId>thumbnailator</artifactId>
                <version>${thumbnailator.version}</version>
                <optional>true</optional>
            </dependency>
            <dependency>
                <groupId>org.apache.tika</groupId>
                <artifactId>tika-core</artifactId>
                <version>${tika-core.version}</version>
                <optional>true</optional>
            </dependency>

            <!-- 测试 -->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>it.ozimov</groupId>
                <artifactId>embedded-redis</artifactId>
                <version>${embedded-redis.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>net.sf.dozer</groupId>
                <artifactId>dozer</artifactId>
                <version>${dozer.version}</version>
            </dependency>
            <dependency>
                <groupId>io.protostuff</groupId>
                <artifactId>protostuff-api</artifactId>
                <version>${protostuff.version}</version>
            </dependency>
            <dependency>
                <groupId>io.protostuff</groupId>
                <artifactId>protostuff-core</artifactId>
                <version>${protostuff.version}</version>
            </dependency>
            <dependency>
                <groupId>io.protostuff</groupId>
                <artifactId>protostuff-runtime</artifactId>
                <version>${protostuff.version}</version>
            </dependency>
            <dependency>
                <groupId>de.ruedigermoeller</groupId>
                <artifactId>fst</artifactId>
                <version>${fst.version}</version>
            </dependency>

            <dependency>
                <groupId>org.elasticsearch</groupId>
                <artifactId>elasticsearch</artifactId>
                <version>${elasticsearch.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo-spring-boot-starter</artifactId>
                <version>${dubbo.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.dubbo</groupId>
                <artifactId>dubbo</artifactId>
                <version>${dubbo.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mysql</groupId>
                <artifactId>mysql-connector-j</artifactId>
                <version>${mysql-connector.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.edas</groupId>
                <artifactId>edas-sdk</artifactId>
                <version>${aliyun-edas.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>${servlet.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>${easy-excel.version}</version>
            </dependency>

            <dependency>
                <groupId>com.tydic.zb.xls</groupId>
                <artifactId>api-gateway-common</artifactId>
                <version>${api.commont.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-net</groupId>
                <artifactId>commons-net</artifactId>
                <version>${commons-net.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch</artifactId>
                <version>${jsch.version}</version>
            </dependency>

            <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-client</artifactId>
                <version>${nacos.version}</version>
                <!-- 指定纯净版SDK -->
                <classifier>pure</classifier>
            </dependency>
            <!-- 使用纯净版时必须要引入同版本nacos-api和nacos-common，否则可能出现运行时找不到类的问题 -->
            <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-common</artifactId>
                <version>${nacos.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-api</artifactId>
                <version>${nacos.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.edas</groupId>
                <artifactId>edas-dubbo-extension</artifactId>
                <version>${edas-dubbo-extension.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro</artifactId>
                <version>${avro.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.mahout</groupId>
                <artifactId>mahout-core</artifactId>
                <version>${mahout-core.version}</version>
            </dependency>


            <dependency>
                <groupId>org.apache.mahout</groupId>
                <artifactId>mahout-integration</artifactId>
                <version>${mahout-core.version}</version>
            </dependency>

            <dependency>
                <groupId>com.alibaba.boot</groupId>
                <artifactId>nacos-config-spring-boot-starter</artifactId>
                <version>${nacos-config-spring-boot-starter.version}</version>
                <exclusions>
                    <!-- 排除nacos-client 2.x，因为gRPC端口(HTTP端口+1000)不可达 -->
                    <exclusion>
                        <groupId>com.alibaba.nacos</groupId>
                        <artifactId>nacos-client</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- 使用nacos-client 1.x，仅通过HTTP协议通信，Nacos 2.3.2服务器完全兼容 -->
            <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-client</artifactId>
                <version>${nacos-client.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-common</artifactId>
                <version>${nacos-client.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba.nacos</groupId>
                <artifactId>nacos-api</artifactId>
                <version>${nacos-client.version}</version>
            </dependency>
            <!-- 降级 JAXB 到 Java 8 兼容版本 -->
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxb.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>${jaxb.version}</version>
            </dependency>
            <!-- 获取浏览器相关信息 -->
            <dependency>
                <groupId>eu.bitwalker</groupId>
                <artifactId>UserAgentUtils</artifactId>
                <version>${eu.version}</version>
            </dependency>
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>dubbo</artifactId>
                <version>${com.alibaba.version}</version>
            </dependency>
            <dependency>
                <groupId>net.sf.json-lib</groupId>
                <artifactId>json-lib</artifactId>
                <version>${net.version}</version>
                <classifier>jdk15</classifier>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- 插件管理 -->
    <build>
        <pluginManagement>
            <plugins>
                <!-- Maven编译插件 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.11.0</version>
                    <configuration>
                        <source>${java.version}</source>
                        <target>${java.version}</target>
                        <encoding>${project.build.sourceEncoding}</encoding>
                        <parameters>true</parameters>
                    </configuration>
                </plugin>

                <!-- 源码打包插件 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.3.0</version>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar-no-fork</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>

                <!-- 发布插件 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>3.1.1</version>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <!-- 部署仓库配置 -->
    <distributionManagement>
        <repository>
            <id>releases</id>
            <name>Nexus Release Repository</name>
            <url>http://118.190.78.212:8081/nexus/content/repositories/releases/</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id>
            <name>Nexus Snapshot Repository</name>
            <url>http://118.190.78.212:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>
</project>