<?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>vip.xiaonuo</groupId>
    <artifactId>snowy-cloud</artifactId>
    <name>snowy-cloud</name>
    <version>2.0.0</version>
    <description>snowy-cloud快速开发平台</description>
    <packaging>pom</packaging>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.12</version>
    </parent>

    <properties>
        <!-- maven base -->
        <java.version>1.8</java.version>
        <maven.compiler.plugin.version>3.7.0</maven.compiler.plugin.version>
        <maven.source.plugin>3.0.1</maven.source.plugin>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <skipTests>true</skipTests>

        <!-- snowy-base -->
        <snowy.version>2.0.0</snowy.version>
        <spring-framework.version>5.3.26</spring-framework.version>
        <spring.boot-version>2.5.12</spring.boot-version>
        <spring.cloud-version>2020.0.6</spring.cloud-version>
        <spring.cloud.bootstrap-version>3.1.3</spring.cloud.bootstrap-version>
        <spring.cloud.alibaba-version>2021.1</spring.cloud.alibaba-version>
        <spring.boot.admin-version>2.5.6</spring.boot.admin-version>

        <!-- 锁定依赖版本号 -->
        <ali.oss.version>3.14.0</ali.oss.version>
        <aliyun.sdk.dm.version>3.3.1</aliyun.sdk.dm.version>
        <aliyun.sdk.dysmsapi.version>2.0.9</aliyun.sdk.dysmsapi.version>
        <aliyun.sdk.ecs.version>3.1.0</aliyun.sdk.ecs.version>
        <bcprov.jdk15on.version>1.70</bcprov.jdk15on.version>
        <beetl.version>1.2.40.Beetl.RELEASE</beetl.version>
        <checker.qual.version>3.31.0</checker.qual.version>
        <camunda.version>7.17.0</camunda.version>
        <commons.beanutils.version>1.9.4</commons.beanutils.version>
        <commons.compress.version>1.22</commons.compress.version>
        <commons.pool2.version>2.11.1</commons.pool2.version>
        <druid.version>1.2.9</druid.version>
        <dynamic.datasource.version>3.5.1</dynamic.datasource.version>
        <easy.trans.version>2.1.7</easy.trans.version>
        <easyexcel.version>3.2.1</easyexcel.version>
        <easypoi.version>4.3.0</easypoi.version>
        <fastjson.version>2.0.24</fastjson.version>
        <gson.version>2.8.9</gson.version>
        <guava.version>31.1-jre</guava.version>
        <hutool.version>5.8.12</hutool.version>
        <ijpay.version>2.8.3</ijpay.version>
        <ip2region.version>2.6.3</ip2region.version>
        <jackson.annotations.version>2.14.2</jackson.annotations.version>
        <jackson.core.version>2.14.2</jackson.core.version>
        <jackson.databind.version>2.14.2</jackson.databind.version>
        <jackson.datatype.jdk8.version>2.14.2</jackson.datatype.jdk8.version>
        <jackson.datatype.jsr310.version>2.14.2</jackson.datatype.jsr310.version>
        <jackson.module.parameter.names.version>2.14.2</jackson.module.parameter.names.version>
        <javax.mail.version>1.6.2</javax.mail.version>
        <jettison.version>1.5.4</jettison.version>
        <json.flattener.version>0.16.4</json.flattener.version>
        <junit.version>4.13.2</junit.version>
        <just.auth.version>1.16.5</just.auth.version>
        <knife4j.version>2.0.9</knife4j.version>
        <logback.classic.version>1.2.0</logback.classic.version>
        <lombok.versin>1.18.22</lombok.versin>
        <minio.version>8.5.2</minio.version>
        <mssql.connector.java.version>9.2.1.jre8</mssql.connector.java.version>
        <mybatis.plus.version>3.5.3.1</mybatis.plus.version>
        <mybatis.version>3.5.10</mybatis.version>
        <mysql.connector.java.version>8.0.28</mysql.connector.java.version>
        <netty.common.version>4.1.89.Final</netty.common.version>
        <netty.handler.version>4.1.89.Final</netty.handler.version>
        <okhttp3.version>4.10.0</okhttp3.version>
        <okio.version>3.3.0</okio.version>
        <dm.connector.java.version>8.1.2.192</dm.connector.java.version>
        <kingbase.connector.java.version>8.6.0</kingbase.connector.java.version>
        <oracle.connector.java.version>21.5.0.0</oracle.connector.java.version>
        <oracle.nls.orai18n.version>19.7.0.0</oracle.nls.orai18n.version>
        <oshi.core.version>6.2.2</oshi.core.version>
        <pinyin.version>2.5.1</pinyin.version>
        <postgres.connector.java.version>42.2.25</postgres.connector.java.version>
        <protobuf.java.version>3.21.12</protobuf.java.version>
        <sa.token.version>1.31.0</sa.token.version>
        <smcrypto.version>0.3.2</smcrypto.version>
        <snakeyaml.version>1.31</snakeyaml.version><!-- cloud使用2.0版本yaml存在冲突 -->
        <spring.context.version>5.3.19</spring.context.version>
        <spring.security.crypto.version>5.5.5</spring.security.crypto.version><!-- cloud使用6.0.2版本yaml存在冲突 -->
        <springfox.swagger2.version>2.10.5</springfox.swagger2.version>
        <ten.cos.version>5.6.68</ten.cos.version>
        <ten.sdk.ses.version>3.1.455</ten.sdk.ses.version>
        <ten.sdk.sms.version>3.1.455</ten.sdk.sms.version>
        <tomcat.embed.core.version>9.0.72</tomcat.embed.core.version>
        <urp.jackson.mapper.asl.version>1.9.11</urp.jackson.mapper.asl.version>
        <urp.antlr4.runtime.version>4.9.2</urp.antlr4.runtime.version>
        <urp.itextpdf.version>5.5.13</urp.itextpdf.version>
        <urp.poi.ooxml.version>4.1.2</urp.poi.ooxml.version>
        <urp.poi.scratchpad.version>4.1.2</urp.poi.scratchpad.version>
        <urp.ooxml.schemas.version>1.4</urp.ooxml.schemas.version>
        <urp.zxing.core.version>3.3.1</urp.zxing.core.version>
        <urp.velocity.version>1.7</urp.velocity.version>
        <urp.commons.lang.version>3.5</urp.commons.lang.version>
        <urp.commons.io.version>2.5</urp.commons.io.version>
        <urp.commons.fileupload.version>1.3.2</urp.commons.fileupload.version>
        <urp.commons.beanutils.core.version>1.8.3</urp.commons.beanutils.core.version>
        <urp.dom4j.version>1.6.1</urp.dom4j.version>
        <wx.pay.version>4.4.9.B</wx.pay.version>

        <!-- snowy-xxl-job-app -->
        <xxljob.version>2.3.1</xxljob.version>
        <mybatis-spring-boot-starter.version>2.1.4</mybatis-spring-boot-starter.version>

    </properties>

    <modules>
        <!-- 基础开发模块 -->
        <module>snowy-base</module>

        <!-- 业务应用启动模块 -->
        <module>snowy-modules</module>

        <!-- 业务插件模块 -->
        <module>snowy-plugin</module>

        <!-- 依赖服务启动模块 -->
        <module>snowy-server</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <!-- snowy-cloud-inner-start -->
            <!-- snowy-common -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-common</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-auth-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-auth-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-auth-feign -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-auth-feign</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-auth-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-auth-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-biz-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-biz-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-biz-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-biz-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-client-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-client-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-client-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-client-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-dev-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-dev-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-dev-feign -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-dev-feign</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-dev-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-dev-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-gen-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-gen-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-gen-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-gen-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-mobile-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-mobile-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-mobile-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-mobile-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-sys-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-sys-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-sys-feign -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-sys-feign</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-sys-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-sys-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-dbs-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-dbs-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-dbs-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-dbs-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-exm-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-exm-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-exm-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-exm-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-flw-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-flw-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-flw-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-flw-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-pay-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-pay-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-pay-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-pay-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-ten-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-ten-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-ten-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-ten-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-ten-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-disk-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-ten-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-disk-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-exam-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-exam-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>


            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-exam-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>



            <!-- snowy-plugin-urp-api -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-urp-api</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-plugin-urp-func -->
            <dependency>
                <groupId>vip.xiaonuo</groupId>
                <artifactId>snowy-plugin-urp-func</artifactId>
                <version>${snowy.version}</version>
            </dependency>

            <!-- snowy-cloud-inner-end -->

            <!-- ===================== snowy-cloud-base ========================= -->

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

            <!-- SpringCloud Alibaba -->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${spring.cloud.alibaba-version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- SpringCloud BootStrap -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-starter-bootstrap</artifactId>
                <version>${spring.cloud.bootstrap-version}</version>
            </dependency>

            <!-- SpringBoot Actuator -->
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-server</artifactId>
                <version>${spring.boot.admin-version}</version>
            </dependency>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-server-ui</artifactId>
                <version>${spring.boot.admin-version}</version>
            </dependency>
            <dependency>
                <groupId>de.codecentric</groupId>
                <artifactId>spring-boot-admin-starter-client</artifactId>
                <version>${spring.boot.admin-version}</version>
            </dependency>

            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-aggregation-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
            </dependency>

            <!-- lombok -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.versin}</version>
            </dependency>

            <!-- druid -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid-spring-boot-starter</artifactId>
                <version>${druid.version}</version>
            </dependency>

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

            <!-- mybatis-plus-core -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-core</artifactId>
                <version>${mybatis.plus.version}</version>
            </dependency>

            <!-- mybatis-plus -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>mybatis-plus-boot-starter</artifactId>
                <version>${mybatis.plus.version}</version>
            </dependency>

            <!-- easy-trans -->
            <dependency>
                <groupId>com.fhs-opensource</groupId>
                <artifactId>easy-trans-spring-boot-starter</artifactId>
                <version>${easy.trans.version}</version>
            </dependency>

            <!-- easy-trans-mybatis-plus-extend -->
            <dependency>
                <groupId>com.fhs-opensource</groupId>
                <artifactId>easy-trans-mybatis-plus-extend</artifactId>
                <version>${easy.trans.version}</version>
            </dependency>

            <!-- redis -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>${commons.pool2.version}</version>
            </dependency>

            <!-- okhttp -->
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
                <version>${okhttp3.version}</version>
            </dependency>

            <!-- okio -->
            <dependency>
                <groupId>com.squareup.okio</groupId>
                <artifactId>okio</artifactId>
                <version>${okio.version}</version>
            </dependency>

            <!-- hutool -->
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>${hutool.version}</version>
            </dependency>

            <!-- 支付宝支付 -->
            <dependency>
                <groupId>com.github.javen205</groupId>
                <artifactId>IJPay-AliPay</artifactId>
                <version>${ijpay.version}</version>
            </dependency>

            <!-- 微信支付 -->
            <dependency>
                <groupId>com.github.binarywang</groupId>
                <artifactId>weixin-java-pay</artifactId>
                <version>${wx.pay.version}</version>
            </dependency>

            <!-- pinyin4j -->
            <dependency>
                <groupId>com.belerweb</groupId>
                <artifactId>pinyin4j</artifactId>
                <version>${pinyin.version}</version>
            </dependency>

            <!-- ip2region -->
            <dependency>
                <groupId>org.lionsoul</groupId>
                <artifactId>ip2region</artifactId>
                <version>${ip2region.version}</version>
            </dependency>

            <!-- knife4j -->
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
            </dependency>

            <!-- easy-poi -->
            <dependency>
                <groupId>cn.afterturn</groupId>
                <artifactId>easypoi-spring-boot-starter</artifactId>
                <version>${easypoi.version}</version>
            </dependency>

            <!-- sm-crypto -->
            <dependency>
                <groupId>com.antherd</groupId>
                <artifactId>sm-crypto</artifactId>
                <version>${smcrypto.version}</version>
            </dependency>

            <!-- easyexcel -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>easyexcel</artifactId>
                <version>${easyexcel.version}</version>
            </dependency>

            <!-- sa-token-core -->
            <dependency>
                <groupId>cn.dev33</groupId>
                <artifactId>sa-token-core</artifactId>
                <version>${sa.token.version}</version>
            </dependency>

            <!-- sa-token -->
            <dependency>
                <groupId>cn.dev33</groupId>
                <artifactId>sa-token-spring-boot-starter</artifactId>
                <version>${sa.token.version}</version>
            </dependency>

            <!-- sa-token 整合 redis （使用jackson序列化方式） -->
            <dependency>
                <groupId>cn.dev33</groupId>
                <artifactId>sa-token-dao-redis-jackson</artifactId>
                <version>${sa.token.version}</version>
            </dependency>

            <!-- Sa-Token插件：权限缓存与业务缓存分离 -->
            <dependency>
                <groupId>cn.dev33</groupId>
                <artifactId>sa-token-alone-redis</artifactId>
                <version>${sa.token.version}</version>
            </dependency>

            <!-- Sa-Token 插件：整合SSO -->
            <dependency>
                <groupId>cn.dev33</groupId>
                <artifactId>sa-token-sso</artifactId>
                <version>${sa.token.version}</version>
            </dependency>

            <!-- JustAuth 第三方登录 -->
            <dependency>
                <groupId>me.zhyd.oauth</groupId>
                <artifactId>JustAuth</artifactId>
                <version>${just.auth.version}</version>
            </dependency>

            <!-- beetl模板引擎 -->
            <dependency>
                <groupId>com.ibeetl</groupId>
                <artifactId>beetl-framework-starter</artifactId>
                <version>${beetl.version}</version>
            </dependency>

            <!--腾讯云上传文件客户端-->
            <dependency>
                <groupId>com.qcloud</groupId>
                <artifactId>cos_api</artifactId>
                <version>${ten.cos.version}</version>
            </dependency>

            <!--阿里云上传文件客户端-->
            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${ali.oss.version}</version>
            </dependency>

            <!--minio上传文件客户端-->
            <dependency>
                <groupId>io.minio</groupId>
                <artifactId>minio</artifactId>
                <version>${minio.version}</version>
            </dependency>

            <!--java邮件发送-->
            <dependency>
                <groupId>com.sun.mail</groupId>
                <artifactId>javax.mail</artifactId>
                <version>${javax.mail.version}</version>
            </dependency>

            <!--阿里云邮件发送-->
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-dm</artifactId>
                <version>${aliyun.sdk.dm.version}</version>
            </dependency>

            <!-- 腾讯云邮件发送 -->
            <dependency>
                <groupId>com.tencentcloudapi</groupId>
                <artifactId>tencentcloud-sdk-java-ses</artifactId>
                <version>${ten.sdk.ses.version}</version>
            </dependency>

            <!--阿里云短信发送-->
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>dysmsapi20170525</artifactId>
                <version>${aliyun.sdk.dysmsapi.version}</version>
            </dependency>

            <!--腾讯云短信发送-->
            <dependency>
                <groupId>com.tencentcloudapi</groupId>
                <artifactId>tencentcloud-sdk-java-sms</artifactId>
                <version>${ten.sdk.sms.version}</version>
            </dependency>

            <!--系统硬件信息-->
            <dependency>
                <groupId>com.github.oshi</groupId>
                <artifactId>oshi-core</artifactId>
                <version>${oshi.core.version}</version>
            </dependency>

            <!-- junit -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>

            <!-- logback-classic -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.classic.version}</version>
            </dependency>

            <!-- gson -->
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>

            <!-- guava -->
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>

            <!-- netty-common -->
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-common</artifactId>
                <version>${netty.common.version}</version>
            </dependency>

            <!-- netty-common -->
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-handler</artifactId>
                <version>${netty.handler.version}</version>
            </dependency>

            <!-- jettison -->
            <dependency>
                <groupId>org.codehaus.jettison</groupId>
                <artifactId>jettison</artifactId>
                <version>${jettison.version}</version>
            </dependency>

            <!-- json-flattener -->
            <dependency>
                <groupId>com.github.wnameless.json</groupId>
                <artifactId>json-flattener</artifactId>
                <version>${json.flattener.version}</version>
            </dependency>

            <!-- snakeyaml -->
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>${snakeyaml.version}</version>
            </dependency>

            <!-- spring-context -->
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.context.version}</version>
            </dependency>

            <!-- spring-security-crypto -->
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-crypto</artifactId>
                <version>${spring.security.crypto.version}</version>
            </dependency>

            <!-- springfox-swagger2 -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${springfox.swagger2.version}</version>
            </dependency>

            <!-- tomcat-embed-core -->
            <dependency>
                <groupId>org.apache.tomcat.embed</groupId>
                <artifactId>tomcat-embed-core</artifactId>
                <version>${tomcat.embed.core.version}</version>
            </dependency>

            <!-- fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>

            <!-- jackson-annotations -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${jackson.annotations.version}</version>
            </dependency>

            <!-- jackson-core -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-core</artifactId>
                <version>${jackson.core.version}</version>
            </dependency>

            <!-- jackson-databind -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${jackson.databind.version}</version>
            </dependency>

            <!-- jackson-datatype -->
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jdk8</artifactId>
                <version>${jackson.datatype.jdk8.version}</version>
            </dependency>

            <!-- jackson-jsr310 -->
            <dependency>
                <groupId>com.fasterxml.jackson.datatype</groupId>
                <artifactId>jackson-datatype-jsr310</artifactId>
                <version>${jackson.datatype.jsr310.version}</version>
            </dependency>

            <!-- jackson-module-parameter-names -->
            <dependency>
                <groupId>com.fasterxml.jackson.module</groupId>
                <artifactId>jackson-module-parameter-names</artifactId>
                <version>${jackson.module.parameter.names.version}</version>
            </dependency>

            <!-- commons-beanutils -->
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${commons.beanutils.version}</version>
            </dependency>

            <!-- commons-compress -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>${commons.compress.version}</version>
            </dependency>

            <!-- protobuf-java -->
            <dependency>
                <groupId>com.google.protobuf</groupId>
                <artifactId>protobuf-java</artifactId>
                <version>${protobuf.java.version}</version>
            </dependency>

            <!-- checker-qual -->
            <dependency>
                <groupId>org.checkerframework</groupId>
                <artifactId>checker-qual</artifactId>
                <version>${checker.qual.version}</version>
            </dependency>

            <!-- bcprov-jdk15on -->
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
                <version>${bcprov.jdk15on.version}</version>
            </dependency>

            <!-- dynamic-datasource -->
            <dependency>
                <groupId>com.baomidou</groupId>
                <artifactId>dynamic-datasource-spring-boot-starter</artifactId>
                <version>${dynamic.datasource.version}</version>
            </dependency>

            <!-- camunda工作流引擎 -->
            <dependency>
                <groupId>org.camunda.bpm.springboot</groupId>
                <artifactId>camunda-bpm-spring-boot-starter</artifactId>
                <version>${camunda.version}</version>
            </dependency>

            <!-- ureport2所需要的依赖 -->
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>${urp.jackson.mapper.asl.version}</version>
            </dependency>
            <dependency>
                <groupId>org.antlr</groupId>
                <artifactId>antlr4-runtime</artifactId>
                <version>${urp.antlr4.runtime.version}</version>
            </dependency>
            <dependency>
                <groupId>com.itextpdf</groupId>
                <artifactId>itextpdf</artifactId>
                <version>${urp.itextpdf.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>${urp.poi.ooxml.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-scratchpad</artifactId>
                <version>${urp.poi.scratchpad.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>ooxml-schemas</artifactId>
                <version>${urp.ooxml.schemas.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>core</artifactId>
                <version>${urp.zxing.core.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.velocity</groupId>
                <artifactId>velocity</artifactId>
                <version>${urp.velocity.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${urp.commons.lang.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${urp.commons.io.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>${urp.commons.fileupload.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils-core</artifactId>
                <version>${urp.commons.beanutils.core.version}</version>
            </dependency>
            <dependency>
                <groupId>dom4j</groupId>
                <artifactId>dom4j</artifactId>
                <version>${urp.dom4j.version}</version>
            </dependency>

            <!-- mysql -->
            <!--<dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.connector.java.version}</version>
            </dependency>-->

            <!-- postgresql -->
            <!--<dependency>
                <groupId>org.postgresql</groupId>
                <artifactId>postgresql</artifactId>
                <version>${postgres.connector.java.version}</version>
            </dependency>-->

            <!-- 达梦数据库 -->
            <dependency>
                <groupId>com.dameng</groupId>
                <artifactId>DmJdbcDriver18</artifactId>
                <version>${dm.connector.java.version}</version>
            </dependency>
            <dependency>
                <groupId>com.dameng</groupId>
                <artifactId>DmDialect-for-hibernate5.3</artifactId>
                <version>${dm.connector.java.version}</version>
            </dependency>
            <dependency>
                <!--注意：只有这个版本的hibernate兼容达梦数据库 -->
                <groupId>org.hibernate</groupId>
                <artifactId>hibernate-core</artifactId>
                <version>5.3.18.Final</version>
            </dependency>

            <!-- 人大金仓数据库 -->
            <!--<dependency>
                <groupId>cn.com.kingbase</groupId>
                <artifactId>kingbase8</artifactId>
                <version>${kingbase.connector.java.version}</version>
            </dependency>-->

            <!-- oracle -->
            <!--<dependency>
                <groupId>com.oracle.database.jdbc</groupId>
                <artifactId>ojdbc8</artifactId>
                <version>${oracle.connector.java.version}</version>
            </dependency>
            <dependency>
                <groupId>com.oracle.database.nls</groupId>
                <artifactId>orai18n</artifactId>
                <version>${oracle.nls.orai18n.version}</version>
            </dependency>-->

            <!-- mssql -->
            <!--<dependency>
                <groupId>com.microsoft.sqlserver</groupId>
                <artifactId>mssql-jdbc</artifactId>
                <version>${mssql.connector.java.version}</version>
            </dependency>-->

            <!-- Sa-Token 权限认证（Reactor响应式集成）, 在线文档：https://sa-token.cc -->
            <dependency>
                <groupId>cn.dev33</groupId>
                <artifactId>sa-token-reactor-spring-boot-starter</artifactId>
                <version>${sa.token.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.plugin.version}</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>${maven.source.plugin}</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <excludes>
                    <exclude>_sql/*</exclude>
                    <exclude>*.md</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                    <include>**/*.ttf</include>
                    <include>**/*.ttc</include>
                    <include>**/*.TTF</include>
                    <include>**/*.TTC</include>
                </includes>
            </resource>
        </resources>
    </build>

    <profiles>
        <profile>
            <id>dev</id>
            <properties>
                <spring.active>dev</spring.active>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <spring.active>test</spring.active>
            </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <spring.active>prod</spring.active>
            </properties>
        </profile>
    </profiles>

</project>
