<?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>

    <!--
        其实这里应该是继承自 spring-boot-dependencies，再由 parent 工程继承 dependencies，
        spring-boot-starter-parent 中定义的配置通过 import 的方式引入到 parent

        但是！model 4.x 中并不支持 import plugins，只能通过继承的方式实现……

        又由于 maven 单继承的规则，无论是继承 spring-boot-starter-parent 还是 dependencies 都不完美，
        所以只能在这继承 spring-boot-starter-parent 了

        期盼 model 5.x 中能解决这个问题……
        https://issues.apache.org/jira/browse/MNG-5588
     -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.0.4.RELEASE</version>
    </parent>

    <groupId>com.github.drtrang</groupId>
    <artifactId>dependencies2</artifactId>
    <version>1.3.2</version>
    <packaging>pom</packaging>

    <name>dependencies</name>
    <description>project dependencies</description>
    <url>https://github.com/drtrang/dependencies</url>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <inceptionYear>2018</inceptionYear>

    <organization>
        <name>trang</name>
        <url>http://blog.trang.space</url>
    </organization>

    <developers>
        <developer>
            <id>trang</id>
            <name>trang</name>
            <email>donghao.l@hotmail.com</email>
            <timezone>+8</timezone>
            <url>http://blog.trang.space</url>
        </developer>
    </developers>

    <scm>
        <connection>scm:git:https://github.com/drtrang/dependencies.git</connection>
        <developerConnection>scm:git:git@github.com:drtrang/dependencies.git</developerConnection>
        <url>https://github.com/drtrang/dependencies</url>
        <tag>HEAD</tag>
    </scm>

    <issueManagement>
        <system>github</system>
        <url>https://github.com/drtrang/dependencies/issues</url>
    </issueManagement>

    <distributionManagement>
        <snapshotRepository>
            <id>oss</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>oss</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <properties>
        <!-- 基础依赖 -->
        <asm.version>6.2</asm.version>
        <automon.version>1.0.2</automon.version>
        <auto-common.version>0.10</auto-common.version>
        <auto-value.version>1.6.2</auto-value.version>
        <cglib.version>3.2.7</cglib.version>
        <chronicle-map.version>3.15.1</chronicle-map.version>
        <commons-collections4.version>4.2</commons-collections4.version>
        <commons-compress.version>1.17</commons-compress.version>
        <commons-configuration2.version>2.3</commons-configuration2.version>
        <commons-digester3.version>3.2</commons-digester3.version>
        <commons-io.version>2.6</commons-io.version>
        <commons-logging.version>1.2</commons-logging.version>
        <commons-math3.version>3.6.1</commons-math3.version>
        <commons-net.version>3.6</commons-net.version>
        <commons-validator.version>1.6</commons-validator.version>
        <cron-utils.version>7.0.2</cron-utils.version>
        <curator.version>4.0.1</curator.version>
        <druid.version>1.1.10</druid.version>
        <easypoi.version>3.2.0</easypoi.version>
        <eclipse-collections.version>9.2.0</eclipse-collections.version>
        <fastutil.version>8.2.1</fastutil.version>
        <fluent-validator.version>1.0.9</fluent-validator.version>
        <fst.version>2.57</fst.version>
        <guava.version>25.1-jre</guava.version>
        <hppc.version>0.8.1</hppc.version>
        <javax.persistence-api.version>2.2</javax.persistence-api.version>
        <javasimon.version>4.1.4</javasimon.version>
        <javassist.version>3.23.1-GA</javassist.version>
        <junit-params.version>1.1.1</junit-params.version>
        <junit-platform.version>1.3.0-M1</junit-platform.version>
        <leakcanary.version>1.6.1</leakcanary.version>
        <libphonenumber.version>8.9.10</libphonenumber.version>
        <logback-ext-spring.version>0.1.5</logback-ext-spring.version>
        <mapper.version>4.0.3</mapper.version>
        <mapper-module.version>1.0.4</mapper-module.version>
        <mapper-weekend.version>1.1.4</mapper-weekend.version>
        <mapper-spring-boot-starter.version>2.0.3</mapper-spring-boot-starter.version>
        <mockito.version>2.21.0</mockito.version>
        <mybatis-dynamic-sql.version>1.1.0</mybatis-dynamic-sql.version>
        <mybatis-generator.version>1.3.7</mybatis-generator.version>
        <mybatis-spring-boot-starter.version>1.3.2</mybatis-spring-boot-starter.version>
        <mybatis-spring.version>1.3.2</mybatis-spring.version>
        <mybatis-typehandlers-jsr310.version>1.0.2</mybatis-typehandlers-jsr310.version>
        <mybatis.version>3.4.6</mybatis.version>
        <mysql-binlog.version>0.16.1</mysql-binlog.version>
        <okhttp3.version>3.11.0</okhttp3.version>
        <orika.version>1.5.2</orika.version>
        <pagehelper.version>5.1.4</pagehelper.version>
        <pagehelper-spring-boot-starter.version>1.2.5</pagehelper-spring-boot-starter.version>
        <pcollections.version>3.0.2</pcollections.version>
        <pdfbox.version>2.0.11</pdfbox.version>
        <poi.version>3.17</poi.version>
        <powermock.version>2.0.0-beta.5</powermock.version>
        <redisson.version>3.7.5</redisson.version>
        <sharding-sphere.version>3.0.0.M1</sharding-sphere.version>
        <spring-boot.version>2.0.4.RELEASE</spring-boot.version>
        <streamex.version>0.6.7</streamex.version>
        <strman.version>0.4.0</strman.version>
        <swagger2.version>2.9.2</swagger2.version>
        <tablesaw.version>0.24.3</tablesaw.version>
        <testng.version>6.14.3</testng.version>
        <thumbnailator.version>0.4.8</thumbnailator.version>
        <trove4j.version>3.0.3</trove4j.version>
        <univocity-parsers.version>2.7.2</univocity-parsers.version>
        <xerces.version>2.12.0</xerces.version>
        <zxing.version>3.3.3</zxing.version>
        <!-- phantomthief -->
        <adaptive-executor.version>0.1.4</adaptive-executor.version>
        <buffer-trigger.version>0.2.11</buffer-trigger.version>
        <cursor-iterator.version>1.0.10</cursor-iterator.version>
        <model-view-builder.version>1.1.2</model-view-builder.version>
        <more-lambdas.version>0.1.25</more-lambdas.version>
        <retrieve-id-utils.version>1.0.6</retrieve-id-utils.version>
        <scope.version>1.0.7</scope.version>
        <simple-failover.version>0.1.14</simple-failover.version>
        <simple-pool.version>0.1.14</simple-pool.version>
        <stats-helper.version>0.2.2</stats-helper.version>
        <zkconfig-resources.version>1.1.23</zkconfig-resources.version>
        <zknotify-cache.version>0.1.9</zknotify-cache.version>
        <!-- 重写 spring-boot-dependencies 中定义的版本号，目前是把常用依赖升级成了最新版 -->
        <commons-pool2.version>2.6.0</commons-pool2.version>
        <hikaricp.version>3.2.0</hikaricp.version>
        <httpasyncclient.version>4.1.4</httpasyncclient.version>
        <javax-transaction.version>1.3</javax-transaction.version>
        <lombok.version>1.18.2</lombok.version>
        <netty.version>4.1.28.Final</netty.version>
        <rxjava2.version>2.1.17</rxjava2.version>
        <!-- Maven 插件 -->
        <build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
        <buildnumber-maven-plugin.version>1.4</buildnumber-maven-plugin.version>
        <cobertura-maven-plugin.version>2.7</cobertura-maven-plugin.version>
        <coveralls-maven-plugin.version>4.3.0</coveralls-maven-plugin.version>
        <exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
        <git-commit-id-plugin.version>2.2.4</git-commit-id-plugin.version>
        <jacoco-maven-plugin.version>0.8.1</jacoco-maven-plugin.version>
        <maven-archetype-plugin.version>3.0.1</maven-archetype-plugin.version>
        <maven-assembly-plugin.version>3.1.0</maven-assembly-plugin.version>
        <maven-clean-plugin.version>3.1.0</maven-clean-plugin.version>
        <maven-compiler-plugin.version>3.7.0</maven-compiler-plugin.version>
        <maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
        <maven-deploy-plugin.version>2.8.2</maven-deploy-plugin.version>
        <maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version>
        <maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
        <maven-install-plugin.version>2.5.2</maven-install-plugin.version>
        <maven-jar-plugin.version>3.1.0</maven-jar-plugin.version>
        <maven-javadoc-plugin.version>3.0.1</maven-javadoc-plugin.version>
        <maven-release-plugin.version>2.5.3</maven-release-plugin.version>
        <maven-resources-plugin.version>3.1.0</maven-resources-plugin.version>
        <maven-shade-plugin.version>3.1.1</maven-shade-plugin.version>
        <maven-site-plugin.version>3.7.1</maven-site-plugin.version>
        <maven-source-plugin.version>3.0.1</maven-source-plugin.version>
        <maven-surefire-plugin.version>2.22.0</maven-surefire-plugin.version>
        <maven-war-plugin.version>3.2.2</maven-war-plugin.version>
        <tycho-versions-plugin.version>1.2.0</tycho-versions-plugin.version>
        <versions-maven-plugin.version>2.5</versions-maven-plugin.version>
    </properties>

    <!--
        1. 日志：Slf4j、LogBack
        2. JSON 解析：Jackson、Gson、FastJson
        3. 单元测试：JUnit、Mockito
        4. 通用类库：Apache Commons、Guava
        5. HTTP：Apache HttpClient、HttpCore
        6：XML 解析：Xerces2, JAXB, JAXP, Dom4j, Xstream
        7. Excel 读写：Apache POI
        8. PDF 读写：iText、PDFBox
        9. 字节码库：Javassist、Cglib
        10. 集合类库：Apache Commons Collections、Goldman Sachs Collections、Guava 、Trove、FastUtil
        11. 邮件：Apache Commons Email、javax.mail
        12. HTML 解析：JSoup
        13. 加密：Apache Commons Codec、Guava
    -->
    <dependencyManagement>
        <dependencies>
            <!-- 日志 & 日志桥接 -->
            <!-- https://www.slf4j.org/legacy.html -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>log4j-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.logback-extensions</groupId>
                <artifactId>logback-ext-spring</artifactId>
                <version>${logback-ext-spring.version}</version>
            </dependency>
            <!-- druid 数据库连接池 -->
            <!-- https://github.com/alibaba/druid -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>${druid.version}</version>
            </dependency>
            <!-- mysql 驱动 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
                <scope>runtime</scope>
            </dependency>
            <!-- mysql binlog 驱动 -->
            <!-- https://github.com/shyiko/mysql-binlog-connector-java -->
            <dependency>
                <groupId>com.github.shyiko</groupId>
                <artifactId>mysql-binlog-connector-java</artifactId>
                <version>${mysql-binlog.version}</version>
            </dependency>
            <!-- h2 数据库 -->
            <!-- https://github.com/h2database/h2database -->
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>${h2.version}</version>
                <scope>runtime</scope>
            </dependency>
            <!-- sharding-sphere 数据库分片中间件 -->
            <!-- 引入后会导致 spring-test 和 spring-context-support 版本号错误，暂时注释掉 -->
            <!-- https://github.com/sharding-sphere/sharding-sphere -->
            <!--<dependency>-->
                <!--<groupId>io.shardingsphere</groupId>-->
                <!--<artifactId>sharding-sphere</artifactId>-->
                <!--<version>${sharding-sphere.version}</version>-->
                <!--<type>pom</type>-->
                <!--<scope>import</scope>-->
            <!--</dependency>-->
            <!-- mybatis orm 框架 -->
            <!-- https://github.com/mybatis/mybatis-3 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>${mybatis.version}</version>
            </dependency>
            <!-- https://github.com/mybatis/spring -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-spring</artifactId>
                <version>${mybatis-spring.version}</version>
            </dependency>
            <!-- https://github.com/mybatis/spring-boot-starter -->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis-spring-boot-starter.version}</version>
            </dependency>
            <!-- https://github.com/mybatis/typehandlers-jsr310 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis-typehandlers-jsr310</artifactId>
                <version>${mybatis-typehandlers-jsr310.version}</version>
            </dependency>
            <!-- https://github.com/mybatis/mybatis-dynamic-sql -->
            <dependency>
                <groupId>org.mybatis.dynamic-sql</groupId>
                <artifactId>mybatis-dynamic-sql</artifactId>
                <version>${mybatis-dynamic-sql.version}</version>
            </dependency>
            <!-- mybatis 通用 mapper -->
            <!-- https://github.com/abel533/Mapper -->
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-all</artifactId>
                <version>${mapper.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- mapper-all 中没有兼容老版本的 mapper jar 包，手动声明一个 -->
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper</artifactId>
                <version>${mapper.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.persistence</groupId>
                        <artifactId>persistence-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- mapper-core 中依赖的 persistence-api 太古老了，用这个吧 -->
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-core</artifactId>
                <version>${mapper-module.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.persistence</groupId>
                        <artifactId>persistence-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>javax.persistence</groupId>
                <artifactId>javax.persistence-api</artifactId>
                <version>${javax.persistence-api.version}</version>
            </dependency>
            <!-- mapper-all 中的 weekend 不是最新的，手动声明一下最新版本 -->
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-weekend</artifactId>
                <version>${mapper-weekend.version}</version>
            </dependency>
            <dependency>
                <groupId>tk.mybatis</groupId>
                <artifactId>mapper-spring-boot-starter</artifactId>
                <version>${mapper-spring-boot-starter.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>javax.persistence</groupId>
                        <artifactId>persistence-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- mybatis page-helper 分页插件 -->
            <!-- https://github.com/pagehelper/Mybatis-PageHelper -->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper</artifactId>
                <version>${pagehelper.version}</version>
            </dependency>
            <!-- https://github.com/pagehelper/pagehelper-spring-boot -->
            <dependency>
                <groupId>com.github.pagehelper</groupId>
                <artifactId>pagehelper-spring-boot-starter</artifactId>
                <version>${pagehelper-spring-boot-starter.version}</version>
            </dependency>
            <!-- mybatis generator -->
            <!-- https://github.com/mybatis/generator -->
            <dependency>
                <groupId>org.mybatis.generator</groupId>
                <artifactId>mybatis-generator-core</artifactId>
                <version>${mybatis-generator.version}</version>
            </dependency>
            <!-- curator -->
            <!-- https://github.com/apache/curator -->
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-client</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-framework</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-recipes</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-x-discovery</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.curator</groupId>
                <artifactId>curator-test</artifactId>
                <version>${curator.version}</version>
            </dependency>
            <!-- redisson -->
            <!-- https://github.com/redisson/redisson -->
            <dependency>
                <groupId>org.redisson</groupId>
                <artifactId>redisson</artifactId>
                <version>${redisson.version}</version>
                <!-- 排除一些不太会用到的功能，如需使用请自行添加依赖，排除依据见下方链接 -->
                <!-- https://github.com/redisson/redisson/wiki/15.-Dependency-list -->
                <exclusions>
                    <!-- used for LiveObject service -->
                    <exclusion>
                        <groupId>net.bytebuddy</groupId>
                        <artifactId>byte-buddy</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.jodd</groupId>
                        <artifactId>jodd-bean</artifactId>
                    </exclusion>
                    <!-- used for JCache implementation -->
                    <exclusion>
                        <groupId>javax.cache</groupId>
                        <artifactId>cache-api</artifactId>
                    </exclusion>
                    <!-- used for RedissonReactiveClient -->
                    <exclusion>
                        <groupId>io.projectreactor</groupId>
                        <artifactId>reactor-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- fst 序列化 -->
            <!-- https://github.com/RuedigerMoeller/fast-serialization -->
            <dependency>
                <groupId>de.ruedigermoeller</groupId>
                <artifactId>fst</artifactId>
                <version>${fst.version}</version>
            </dependency>
            <!-- elasticsearch -->
            <!-- https://github.com/elastic/elasticsearch -->
            <dependency>
                <groupId>org.elasticsearch.client</groupId>
                <artifactId>elasticsearch-rest-client</artifactId>
                <version>${elasticsearch.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- okhttp3 -->
            <!-- https://github.com/square/okhttp -->
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>logging-interceptor</artifactId>
                <version>${okhttp3.version}</version>
            </dependency>
            <!-- swagger -->
            <!-- https://github.com/springfox/springfox -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${swagger2.version}</version>
            </dependency>
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger-ui</artifactId>
                <version>${swagger2.version}</version>
            </dependency>
            <!-- 动态代理 -->
            <dependency>
                <groupId>cglib</groupId>
                <artifactId>cglib</artifactId>
                <version>${cglib.version}</version>
            </dependency>
            <!-- 字节码 -->
            <dependency>
                <groupId>org.javassist</groupId>
                <artifactId>javassist</artifactId>
                <version>${javassist.version}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>${asm.version}</version>
            </dependency>
            <!-- lombok，spring boot 的默认版本不是最新 -->
            <!-- https://projectlombok.org/ -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
                <scope>provided</scope>
            </dependency>
            <!-- java8 stream 拓展 -->
            <!-- https://github.com/amaembo/streamex -->
            <dependency>
                <groupId>one.util</groupId>
                <artifactId>streamex</artifactId>
                <version>${streamex.version}</version>
            </dependency>
            <!-- 天舟大神的工具库 -->
            <!-- https://github.com/phantomthief -->
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>more-lambdas</artifactId>
                <version>${more-lambdas.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>stats-helper</artifactId>
                <version>${stats-helper.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>adaptive-executor</artifactId>
                <version>${adaptive-executor.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>simple-failover</artifactId>
                <version>${simple-failover.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>cursor-iterator</artifactId>
                <version>${cursor-iterator.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>zknotify-cache</artifactId>
                <version>${zknotify-cache.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>zkconfig-resources</artifactId>
                <version>${zkconfig-resources.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>retrieve-id-utils</artifactId>
                <version>${retrieve-id-utils.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>model-view-builder</artifactId>
                <version>${model-view-builder.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>buffer-trigger</artifactId>
                <version>${buffer-trigger.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>simple-pool</artifactId>
                <version>${simple-pool.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.phantomthief</groupId>
                <artifactId>scope</artifactId>
                <version>${scope.version}</version>
            </dependency>
            <!-- orika -->
            <!-- https://github.com/orika-mapper/orika -->
            <dependency>
                <groupId>ma.glasnost.orika</groupId>
                <artifactId>orika-core</artifactId>
                <version>${orika.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.javassist</groupId>
                        <artifactId>javassist</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- auto-value -->
            <!-- https://github.com/google/auto -->
            <dependency>
                <groupId>com.google.auto.value</groupId>
                <artifactId>auto-value-annotations</artifactId>
                <version>${auto-value.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.auto.value</groupId>
                <artifactId>auto-value</artifactId>
                <version>${auto-value.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>com.google.auto</groupId>
                <artifactId>auto-common</artifactId>
                <version>${auto-common.version}</version>
            </dependency>
            <!-- 二维码 -->
            <!-- https://github.com/zxing/zxing -->
            <dependency>
                <groupId>com.google.zxing</groupId>
                <artifactId>core</artifactId>
                <version>${zxing.version}</version>
            </dependency>
            <!-- csv -->
            <!-- https://github.com/uniVocity/univocity-parsers -->
            <dependency>
                <groupId>com.univocity</groupId>
                <artifactId>univocity-parsers</artifactId>
                <version>${univocity-parsers.version}</version>
            </dependency>
            <!-- 图片剪裁 -->
            <!-- https://github.com/coobird/thumbnailator -->
            <dependency>
                <groupId>net.coobird</groupId>
                <artifactId>thumbnailator</artifactId>
                <version>${thumbnailator.version}</version>
            </dependency>
            <!-- google 工类库 -->
            <!-- https://github.com/google/guava -->
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>
            <!-- apache 工类库 -->
            <!-- https://github.com/apache/commons-collections/ -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>${commons-collections4.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>${commons-compress.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-configuration2</artifactId>
                <version>${commons-configuration2.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-digester3</artifactId>
                <version>${commons-digester3.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>cglib</groupId>
                        <artifactId>cglib</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-beanutils</groupId>
                        <artifactId>commons-beanutils</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-math3</artifactId>
                <version>${commons-math3.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>${commons-pool2.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-validator</groupId>
                <artifactId>commons-validator</artifactId>
                <version>${commons-validator.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-beanutils</groupId>
                        <artifactId>commons-beanutils</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- 流式验证 -->
            <!-- https://github.com/neoremind/fluent-validator -->
            <dependency>
                <groupId>com.baidu.unbiz</groupId>
                <artifactId>fluent-validator</artifactId>
                <version>${fluent-validator.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- 字符串 -->
            <!-- https://github.com/shekhargulati/strman-java -->
            <dependency>
                <groupId>com.shekhargulati</groupId>
                <artifactId>strman</artifactId>
                <version>${strman.version}</version>
            </dependency>
            <!-- 电话号码验证 -->
            <!-- https://github.com/googlei18n/libphonenumber -->
            <dependency>
                <groupId>com.googlecode.libphonenumber</groupId>
                <artifactId>libphonenumber</artifactId>
                <version>${libphonenumber.version}</version>
            </dependency>
            <!-- cron 表达式解析 -->
            <!-- https://github.com/jmrozanec/cron-utils -->
            <dependency>
                <groupId>com.cronutils</groupId>
                <artifactId>cron-utils</artifactId>
                <version>${cron-utils.version}</version>
            </dependency>
            <!-- 集合拓展 -->
            <!-- https://bitbucket.org/trove4j/trove -->
            <dependency>
                <groupId>net.sf.trove4j</groupId>
                <artifactId>trove4j</artifactId>
                <version>${trove4j.version}</version>
            </dependency>
            <!-- https://github.com/vigna/fastutil -->
            <dependency>
                <groupId>it.unimi.dsi</groupId>
                <artifactId>fastutil</artifactId>
                <version>${fastutil.version}</version>
            </dependency>
            <!-- https://github.com/carrotsearch/hppc -->
            <dependency>
                <groupId>com.carrotsearch</groupId>
                <artifactId>hppc</artifactId>
                <version>${hppc.version}</version>
            </dependency>
            <!-- https://github.com/eclipse/eclipse-collections -->
            <dependency>
                <groupId>org.eclipse.collections</groupId>
                <artifactId>eclipse-collections-api</artifactId>
                <version>${eclipse-collections.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.collections</groupId>
                <artifactId>eclipse-collections</artifactId>
                <version>${eclipse-collections.version}</version>
            </dependency>
            <dependency>
                <groupId>org.eclipse.collections</groupId>
                <artifactId>eclipse-collections-testutils</artifactId>
                <version>${eclipse-collections.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.collections</groupId>
                <artifactId>eclipse-collections-forkjoin</artifactId>
                <version>${eclipse-collections.version}</version>
            </dependency>
            <!-- https://pcollections.org -->
            <dependency>
                <groupId>org.pcollections</groupId>
                <artifactId>pcollections</artifactId>
                <version>${pcollections.version}</version>
            </dependency>
            <!-- https://github.com/OpenHFT/Chronicle-Map -->
            <dependency>
                <groupId>net.openhft</groupId>
                <artifactId>chronicle-map</artifactId>
                <version>${chronicle-map.version}</version>
            </dependency>
            <!-- 数据处理 -->
            <!-- https://github.com/jtablesaw/tablesaw -->
            <dependency>
                <groupId>tech.tablesaw</groupId>
                <artifactId>tablesaw-core</artifactId>
                <version>${tablesaw.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- xml 解析 -->
            <dependency>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
                <version>${xerces.version}</version>
            </dependency>
            <!-- pdf 读写 -->
            <!-- https://github.com/apache/pdfbox -->
            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>pdfbox</artifactId>
                <version>${pdfbox.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- poi -->
            <!-- http://poi.apache.org -->
            <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>org.apache.poi</groupId>
                <artifactId>poi-ooxml-schemas</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-scratchpad</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-excelant</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <!-- easypoi -->
            <!-- https://gitee.com/lemur/easypoi -->
            <dependency>
                <groupId>cn.afterturn</groupId>
                <artifactId>easypoi-annotation</artifactId>
                <version>${easypoi.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.afterturn</groupId>
                <artifactId>easypoi-base</artifactId>
                <version>${easypoi.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.afterturn</groupId>
                <artifactId>easypoi-web</artifactId>
                <version>${easypoi.version}</version>
                <exclusions>
                    <exclusion>
                        <artifactId>commons-logging</artifactId>
                        <groupId>commons-logging</groupId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- 性能测试 -->
            <!-- https://github.com/virgo47/javasimon -->
            <dependency>
                <groupId>org.javasimon</groupId>
                <artifactId>javasimon-core</artifactId>
                <version>${javasimon.version}</version>
            </dependency>
            <dependency>
                <groupId>org.javasimon</groupId>
                <artifactId>javasimon-spring</artifactId>
                <version>${javasimon.version}</version>
            </dependency>
            <dependency>
                <groupId>org.javasimon</groupId>
                <artifactId>javasimon-jdbc41</artifactId>
                <version>${javasimon.version}</version>
            </dependency>
            <dependency>
                <groupId>org.javasimon</groupId>
                <artifactId>javasimon-console-embed</artifactId>
                <version>${javasimon.version}</version>
            </dependency>
            <!-- https://github.com/stevensouza/automon -->
            <dependency>
                <groupId>org.automon</groupId>
                <artifactId>automon</artifactId>
                <version>${automon.version}</version>
            </dependency>
            <!-- 内存泄漏 -->
            <!-- https://github.com/square/leakcanary -->
            <dependency>
                <groupId>com.squareup.leakcanary</groupId>
                <artifactId>leakcanary-watcher</artifactId>
                <version>${leakcanary.version}</version>
            </dependency>
            <!-- 单元测试 -->
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <version>${spring-boot.version}</version>
                <scope>test</scope>
            </dependency>
            <!-- https://github.com/junit-team/junit5 -->
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-launcher</artifactId>
                <version>${junit-platform.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-runner</artifactId>
                <version>${junit-platform.version}</version>
                <scope>test</scope>
            </dependency>
            <!-- https://github.com/cbeust/testng -->
            <dependency>
                <groupId>org.testng</groupId>
                <artifactId>testng</artifactId>
                <version>${testng.version}</version>
                <scope>test</scope>
            </dependency>
            <!-- https://github.com/powermock/powermock -->
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-module-junit4</artifactId>
                <version>${powermock.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-module-testng</artifactId>
                <version>${powermock.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-api-easymock</artifactId>
                <version>${powermock.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.powermock</groupId>
                <artifactId>powermock-api-mockito2</artifactId>
                <version>${powermock.version}</version>
                <scope>test</scope>
            </dependency>
            <!-- https://github.com/mockito/mockito -->
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockito.version}</version>
                <scope>test</scope>
            </dependency>
            <!-- https://github.com/Pragmatists/JUnitParams -->
            <dependency>
                <groupId>pl.pragmatists</groupId>
                <artifactId>JUnitParams</artifactId>
                <version>${junit-params.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${junit.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <profiles>
        <profile>
            <id>dev</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <!-- 正式 profile -->
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>${maven-gpg-plugin.version}</version>
                        <inherited>false</inherited>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-release-plugin</artifactId>
                        <version>${maven-release-plugin.version}</version>
                        <inherited>false</inherited>
                        <configuration>
                            <allowTimestampedSnapshots>true</allowTimestampedSnapshots>
                            <autoVersionSubmodules>true</autoVersionSubmodules>
                            <commitByProject>true</commitByProject>
                            <tagNameFormat>v@{project.version}</tagNameFormat>
                            <releaseProfiles>release</releaseProfiles>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>${maven-deploy-plugin.version}</version>
                        <inherited>false</inherited>
                        <configuration>
                            <updateReleaseInfo>true</updateReleaseInfo>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <build>
        <defaultGoal>install</defaultGoal>
        <finalName>${project.artifactId}-${project.version}</finalName>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>${maven-release-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-archetype-plugin</artifactId>
                    <version>${maven-archetype-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>${maven-gpg-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.eclipse.tycho</groupId>
                    <artifactId>tycho-versions-plugin</artifactId>
                    <version>${tycho-versions-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>${buildnumber-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.eluder.coveralls</groupId>
                    <artifactId>coveralls-maven-plugin</artifactId>
                    <version>${coveralls-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>cobertura-maven-plugin</artifactId>
                    <version>${cobertura-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco-maven-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.mybatis.generator</groupId>
                    <artifactId>mybatis-generator-maven-plugin</artifactId>
                    <version>${mybatis-generator.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <!-- plugins 中声明的所有插件都不是可继承的，只适用于本工程 -->
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <version>${versions-maven-plugin.version}</version>
                <inherited>false</inherited>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <version>${maven-dependency-plugin.version}</version>
                <inherited>false</inherited>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <inputEncoding>${project.build.sourceEncoding}</inputEncoding>
                    <outputEncoding>${project.reporting.outputEncoding}</outputEncoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-clean-plugin</artifactId>
                <version>${maven-clean-plugin.version}</version>
                <inherited>false</inherited>
                <!-- 每次构建项目时自动清理 -->
                <executions>
                    <execution>
                        <id>auto-clean</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>${maven-resources-plugin.version}</version>
                <inherited>false</inherited>
                <configuration>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <includeEmptyDirs>true</includeEmptyDirs>
                    <addDefaultExcludes>false</addDefaultExcludes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven-surefire-plugin.version}</version>
                <inherited>false</inherited>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>