<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~                    GNU LESSER GENERAL PUBLIC LICENSE
  ~                        Version 3, 29 June 2007
  ~
  ~  Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org />
  ~  Everyone is permitted to copy and distribute verbatim copies
  ~  of this license document, but changing it is not allowed.
  ~
  ~
  ~   This version of the GNU Lesser General Public License incorporates
  ~ the terms and conditions of version 3 of the GNU General Public
  ~ License, supplemented by the additional permissions listed below.
  ~
  ~   0. Additional Definitions.
  ~
  ~   As used herein, "this License" refers to version 3 of the GNU Lesser
  ~ General Public License, and the "GNU GPL" refers to version 3 of the GNU
  ~ General Public License.
  ~
  ~   "The Library" refers to a covered work governed by this License,
  ~ other than an Application or a Combined Work as defined below.
  ~
  ~   An "Application" is any work that makes use of an interface provided
  ~ by the Library, but which is not otherwise based on the Library.
  ~ Defining a subclass of a class defined by the Library is deemed a mode
  ~ of using an interface provided by the Library.
  ~
  ~   A "Combined Work" is a work produced by combining or linking an
  ~ Application with the Library.  The particular version of the Library
  ~ with which the Combined Work was made is also called the "Linked
  ~ Version".
  ~
  ~   The "Minimal Corresponding Source" for a Combined Work means the
  ~ Corresponding Source for the Combined Work, excluding any source code
  ~ for portions of the Combined Work that, considered in isolation, are
  ~ based on the Application, and not on the Linked Version.
  ~
  ~   The "Corresponding Application Code" for a Combined Work means the
  ~ object code and/or source code for the Application, including any data
  ~ and utility programs needed for reproducing the Combined Work from the
  ~ Application, but excluding the System Libraries of the Combined Work.
  ~
  ~   1. Exception to Section 3 of the GNU GPL.
  ~
  ~   You may convey a covered work under sections 3 and 4 of this License
  ~ without being bound by section 3 of the GNU GPL.
  ~
  ~   2. Conveying Modified Versions.
  ~
  ~   If you modify a copy of the Library, and, in your modifications, a
  ~ facility refers to a function or data to be supplied by an Application
  ~ that uses the facility (other than as an argument passed when the
  ~ facility is invoked), then you may convey a copy of the modified
  ~ version:
  ~
  ~    a) under this License, provided that you make a good faith effort to
  ~    ensure that, in the event an Application does not supply the
  ~    function or data, the facility still operates, and performs
  ~    whatever part of its purpose remains meaningful, or
  ~
  ~    b) under the GNU GPL, with none of the additional permissions of
  ~    this License applicable to that copy.
  ~
  ~   3. Object Code Incorporating Material from Library Header Files.
  ~
  ~   The object code form of an Application may incorporate material from
  ~ a header file that is part of the Library.  You may convey such object
  ~ code under terms of your choice, provided that, if the incorporated
  ~ material is not limited to numerical parameters, data structure
  ~ layouts and accessors, or small macros, inline functions and templates
  ~ (ten or fewer lines in length), you do both of the following:
  ~
  ~    a) Give prominent notice with each copy of the object code that the
  ~    Library is used in it and that the Library and its use are
  ~    covered by this License.
  ~
  ~    b) Accompany the object code with a copy of the GNU GPL and this license
  ~    document.
  ~
  ~   4. Combined Works.
  ~
  ~   You may convey a Combined Work under terms of your choice that,
  ~ taken together, effectively do not restrict modification of the
  ~ portions of the Library contained in the Combined Work and reverse
  ~ engineering for debugging such modifications, if you also do each of
  ~ the following:
  ~
  ~    a) Give prominent notice with each copy of the Combined Work that
  ~    the Library is used in it and that the Library and its use are
  ~    covered by this License.
  ~
  ~    b) Accompany the Combined Work with a copy of the GNU GPL and this license
  ~    document.
  ~
  ~    c) For a Combined Work that displays copyright notices during
  ~    execution, include the copyright notice for the Library among
  ~    these notices, as well as a reference directing the user to the
  ~    copies of the GNU GPL and this license document.
  ~
  ~    d) Do one of the following:
  ~
  ~        0) Convey the Minimal Corresponding Source under the terms of this
  ~        License, and the Corresponding Application Code in a form
  ~        suitable for, and under terms that permit, the user to
  ~        recombine or relink the Application with a modified version of
  ~        the Linked Version to produce a modified Combined Work, in the
  ~        manner specified by section 6 of the GNU GPL for conveying
  ~        Corresponding Source.
  ~
  ~        1) Use a suitable shared library mechanism for linking with the
  ~        Library.  A suitable mechanism is one that (a) uses at run time
  ~        a copy of the Library already present on the user's computer
  ~        system, and (b) will operate properly with a modified version
  ~        of the Library that is interface-compatible with the Linked
  ~        Version.
  ~
  ~    e) Provide Installation Information, but only if you would otherwise
  ~    be required to provide such information under section 6 of the
  ~    GNU GPL, and only to the extent that such information is
  ~    necessary to install and execute a modified version of the
  ~    Combined Work produced by recombining or relinking the
  ~    Application with a modified version of the Linked Version. (If
  ~    you use option 4d0, the Installation Information must accompany
  ~    the Minimal Corresponding Source and Corresponding Application
  ~    Code. If you use option 4d1, you must provide the Installation
  ~    Information in the manner specified by section 6 of the GNU GPL
  ~    for conveying Corresponding Source.)
  ~
  ~   5. Combined Libraries.
  ~
  ~   You may place library facilities that are a work based on the
  ~ Library side by side in a single library together with other library
  ~ facilities that are not Applications and are not covered by this
  ~ License, and convey such a combined library under terms of your
  ~ choice, if you do both of the following:
  ~
  ~    a) Accompany the combined library with a copy of the same work based
  ~    on the Library, uncombined with any other library facilities,
  ~    conveyed under the terms of this License.
  ~
  ~    b) Give prominent notice with the combined library that part of it
  ~    is a work based on the Library, and explaining where to find the
  ~    accompanying uncombined form of the same work.
  ~
  ~   6. Revised Versions of the GNU Lesser General Public License.
  ~
  ~   The Free Software Foundation may publish revised and/or new versions
  ~ of the GNU Lesser General Public License from time to time. Such new
  ~ versions will be similar in spirit to the present version, but may
  ~ differ in detail to address new problems or concerns.
  ~
  ~   Each version is given a distinguishing version number. If the
  ~ Library as you received it specifies that a certain numbered version
  ~ of the GNU Lesser General Public License "or any later version"
  ~ applies to it, you have the option of following the terms and
  ~ conditions either of that published version or of any later version
  ~ published by the Free Software Foundation. If the Library as you
  ~ received it does not specify a version number of the GNU Lesser
  ~ General Public License, you may choose any version of the GNU Lesser
  ~ General Public License ever published by the Free Software Foundation.
  ~
  ~   If the Library as you received it specifies that a proxy can decide
  ~ whether future versions of the GNU Lesser General Public License shall
  ~ apply, that proxy's public statement of acceptance of any version is
  ~ permanent authorization for you to choose that version for the
  ~ Library.
  ~
  -->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <!-- 父项目信息 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.5.RELEASE</version>
    </parent>

    <!-- 本项目信息 -->
    <!-- 正式版格式：super.x.y.z-release-->
    <!-- 快照版格式：super.x.y.z-SNAPSHOT-->
    <groupId>vip.isass</groupId>
    <artifactId>super</artifactId>
    <version>super.3.0.4-release</version>
    <packaging>pom</packaging>

    <modules>
        <module>super-core</module>
        <module>super-core-cache</module>
        <module>super-core-database</module>
        <module>super-core-database-mybatisplus</module>
        <module>super-core-database-querydsl</module>
        <module>super-core-database-mysql</module>
        <module>super-core-database-postgresql</module>
        <module>super-core-database-mybatisplus-postgresql</module>
        <module>super-core-database-mybatisplus-mysql</module>
        <module>super-core-database-sharding-jdbc</module>
        <module>super-core-mq</module>
        <module>super-core-mq-ons</module>
        <module>super-core-mq-kafka011</module>
        <module>super-core-web</module>
        <module>super-core-web-security</module>
        <module>super-core-web-res</module>
        <module>super-core-web-swagger</module>
        <module>super-core-web-rpc-feign</module>
        <module>super-core-net</module>
        <module>super-core-net-tcp</module>
        <module>super-core-net-websocket</module>
        <module>super-core-protobuf</module>
        <module>super-core-elasticsearch</module>
        <module>super-core-encryption</module>
    </modules>

    <!-- 配置属性 -->
    <properties>
        <!-- start build properties -->

        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>

        <!-- end build properties -->

        <!-- start isass-core -->

        <super-core.version>super.3.0.4-release</super-core.version>

        <!-- end isass-core -->

        <!-- spring -->
        <spring-boot.version>2.2.5.RELEASE</spring-boot.version>
        <spring.cloud.version>Hoxton.SR3</spring.cloud.version>

        <alibaba-nacos.version>2.2.1.RELEASE</alibaba-nacos.version>
        <!--<netty.version>4.1.15.Final</netty.version>-->
        <netty.version>4.1.36.Final</netty.version>

        <skywalking.version>6.6.0</skywalking.version>

        <!-- 数据库 -->
        <mybatis-spring-boot-starter.version>2.0.1</mybatis-spring-boot-starter.version>
        <mybatis-plus.version>3.3.1</mybatis-plus.version>
        <flyway.version>6.3.3</flyway.version>
        <sharding-jdbc.version>4.0.0-RC2</sharding-jdbc.version>
        <p6spy.version>3.9.0</p6spy.version>
        <dynamic-datasource.version>3.0.0</dynamic-datasource.version>
        <!--<mysql-connector-java.version>5.1.47</mysql-connector-java.version>-->

        <!-- net -->
        <protobuf-java.version>2.6.1</protobuf-java.version>
        <protobuf-java-format.version>1.2</protobuf-java-format.version>

        <canal.client.version>1.0.25</canal.client.version>
        <hutool.version>5.3.0</hutool.version>
        <rocketmq.version>4.1.0-incubating</rocketmq.version>
        <ons.version>1.8.0.Final</ons.version>

        <disruptor.version>3.4.2</disruptor.version>

        <guava.version>26.0-jre</guava.version>

        <knife4j.version>2.0.2</knife4j.version>

        <jjwt.version>0.9.1</jjwt.version>
        <activiti.version>6.0.0</activiti.version>

        <hystrix-javanica.version>1.5.18</hystrix-javanica.version>
        <freemarker.version>2.3.28</freemarker.version>

        <xxl-job.version>2.2.0</xxl-job.version>

        <jasypt.version>2.1.1</jasypt.version>

        <!--<elasticsearch.version>7.2.0</elasticsearch.version>-->

        <poi-ooxml.version>4.1.0</poi-ooxml.version>
        <xerces.version>2.12.0</xerces.version>

        <klock.version>1.4-RELEASE</klock.version>

        <alipay.version>4.7.12.ALL</alipay.version>

        <feign.form.version>3.8.0</feign.form.version>

        <!-- 分布式事务 -->
        <tx-lcn.version>5.0.2.RELEASE</tx-lcn.version>

        <findbugs.version>3.0.1</findbugs.version>
    </properties>

    <!-- maven功能说明 -->
    <!--
    <scope>compile</scope>
    默认就是compile，什么都不配置也就是意味着compile。
    compile表示被依赖项目需要参与当前项目的编译，当然后续的测试，运行周期也参与其中，是一个比较强的依赖。打包的时候通常需要包含进去。

    <scope>test</scope>
    scope为test表示依赖项目仅仅参与测试相关的工作，包括测试代码的编译，执行。比较典型的如junit。

    <scope>provided</scope>
    意味着打包的时候可以不用包进去，别的设施(Web Container)会提供。
    事实上该依赖理论上可以参与编译，测试，运行等周期。相当于compile，但是在打包阶段做了exclude的动作。

    <scope>runntime</scope>
    runntime表示被依赖项目无需参与项目的编译，不过后期的测试和运行周期需要其参与。
    与compile相比，跳过编译而已，说实话在终端的项目（非开源，企业内部系统）中，和compile区别不是很大。
    比较常见的如JSR×××的实现，对应的API jar是compile的，具体实现是runtime的，compile只需要知道接口就足够了。
    oracle jdbc驱动架包就是一个很好的例子，一般scope为runntime。
    另外runntime的依赖通常和optional搭配使用，optional为true。我可以用A实现，也可以用B实现。

    <scope>import</scope>
    import：从其它的pom文件中导入依赖设置。
    -->
    <dependencyManagement>
        <dependencies>
            <!-- spring cloud 指定spring cloud 的版本，让子项目引用 -->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring.cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-dependencies</artifactId>
                <version>${knife4j.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
                <version>${alibaba-nacos.version}</version>
            </dependency>

            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
                <version>${alibaba-nacos.version}</version>
            </dependency>

            <!-- vip.isass 系列 -->
            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-web</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-web-security</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-web-res</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-web-rpc-feign</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-web-swagger</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-encryption</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-protobuf</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-cache</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-database</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-database-mysql</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-database-postgresql</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-database-mybatisplus</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-database-querydsl</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-database-mybatisplus-postgresql</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-database-mybatisplus-mysql</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-database-sharding-jdbc</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-mq</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-mq-ons</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-mq-kafka011</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-net</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-net-tcp</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-net-websocket</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <dependency>
                <groupId>vip.isass</groupId>
                <artifactId>super-core-elasticsearch</artifactId>
                <version>${super-core.version}</version>
            </dependency>

            <!-- rocketmq -->
            <dependency>
                <groupId>org.apache.rocketmq</groupId>
                <artifactId>rocketmq-client</artifactId>
                <version>${rocketmq.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.rocketmq</groupId>
                <artifactId>rocketmq-common</artifactId>
                <version>${rocketmq.version}</version>
            </dependency>

            <dependency>
                <groupId>com.aliyun.openservices</groupId>
                <artifactId>ons-client</artifactId>
                <version>${ons.version}</version>
            </dependency>

            <!-- 数据库 -->
            <dependency>
                <groupId>org.mybatis.spring.boot</groupId>
                <artifactId>mybatis-spring-boot-starter</artifactId>
                <version>${mybatis-spring-boot-starter.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.shardingsphere</groupId>
                <artifactId>sharding-jdbc-spring-boot-starter</artifactId>
                <version>${sharding-jdbc.version}</version>
            </dependency>

            <dependency>
                <groupId>org.flywaydb</groupId>
                <artifactId>flyway-core</artifactId>
                <version>${flyway.version}</version>
            </dependency>

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

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

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

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

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

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

            <dependency>
                <groupId>p6spy</groupId>
                <artifactId>p6spy</artifactId>
                <version>${p6spy.version}</version>
            </dependency>

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

            <!-- protobuf与json转换-->
            <dependency>
                <groupId>com.googlecode.protobuf-java-format</groupId>
                <artifactId>protobuf-java-format</artifactId>
                <version>${protobuf-java-format.version}</version>
            </dependency>

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

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

            <!-- alibaba canal-->
            <dependency>
                <groupId>com.alibaba.otter</groupId>
                <artifactId>canal.client</artifactId>
                <version>${canal.client.version}</version>
            </dependency>

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

            <dependency>
                <groupId>io.jsonwebtoken</groupId>
                <artifactId>jjwt</artifactId>
                <version>${jjwt.version}</version>
            </dependency>

            <!-- activity -->
            <dependency>
                <groupId>org.activiti</groupId>
                <artifactId>activiti-spring-boot-starter-basic</artifactId>
                <version>${activiti.version}</version>
            </dependency>

            <dependency>
                <groupId>com.netflix.hystrix</groupId>
                <artifactId>hystrix-javanica</artifactId>
                <version>${hystrix-javanica.version}</version>
            </dependency>

            <dependency>
                <groupId>org.freemarker</groupId>
                <artifactId>freemarker</artifactId>
                <version>${freemarker.version}</version>
            </dependency>

            <dependency>
                <groupId>com.xuxueli</groupId>
                <artifactId>xxl-job-core</artifactId>
                <version>${xxl-job.version}</version>
            </dependency>

            <dependency>
                <groupId>com.github.ulisesbocchio</groupId>
                <artifactId>jasypt-spring-boot-starter</artifactId>
                <version>${jasypt.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.skywalking</groupId>
                <artifactId>apm-toolkit-logback-1.x</artifactId>
                <version>${skywalking.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.skywalking</groupId>
                <artifactId>apm-toolkit-trace</artifactId>
                <version>${skywalking.version}</version>
            </dependency>

            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>${poi-ooxml.version}</version>
            </dependency>

            <dependency>
                <groupId>xerces</groupId>
                <artifactId>xercesImpl</artifactId>
                <version>${xerces.version}</version>
            </dependency>

            <!-- 分布式锁 -->
            <dependency>
                <groupId>cn.keking</groupId>
                <artifactId>spring-boot-klock-starter</artifactId>
                <version>${klock.version}</version>
            </dependency>

            <!-- alipay -->
            <dependency>
                <groupId>com.alipay.sdk</groupId>
                <artifactId>alipay-sdk-java</artifactId>
                <version>${alipay.version}</version>
            </dependency>

            <dependency>
                <groupId>io.github.openfeign.form</groupId>
                <artifactId>feign-form</artifactId>
                <version>${feign.form.version}</version>
            </dependency>

            <dependency>
                <groupId>io.github.openfeign.form</groupId>
                <artifactId>feign-form-spring</artifactId>
                <version>${feign.form.version}</version>
            </dependency>

            <!-- 分布式事务 -->
            <dependency>
                <groupId>com.codingapi.txlcn</groupId>
                <artifactId>txlcn-tc</artifactId>
                <version>${tx-lcn.version}</version>
            </dependency>

            <dependency>
                <groupId>com.codingapi.txlcn</groupId>
                <artifactId>txlcn-txmsg-netty</artifactId>
                <version>${tx-lcn.version}</version>
            </dependency>

            <dependency>
                <groupId>com.google.code.findbugs</groupId>
                <artifactId>annotations</artifactId>
                <version>${findbugs.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <!--
            绝大部分的服务都需要依赖的jar包，可以配置这里，达到全局通用的效果
            工具类、数据库连接等jar，不应该放到这里，因为有些服务不需要，例如服务注册与发现中心。
            如果把这些不需要的jar也放到这里，则在服务打包时，会把这些不需要的jar也打包了，造成服务的jar包臃肿。
         -->
        <!--<dependency>-->
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-devtools</artifactId>-->
        <!--<optional>true</optional>-->
        <!--</dependency>-->


        <!--<dependency>-->
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-dependencies</artifactId>-->
        <!--<version>1.5.6.RELEASE</version>-->
        <!--<type>pom</type>-->
        <!--<scope>import</scope>-->
        <!--</dependency>-->
        <!-- AOP -->


        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-logging</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-logback-1.x</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.skywalking</groupId>
            <artifactId>apm-toolkit-trace</artifactId>
        </dependency>

        <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>annotations</artifactId>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.*</include>
                </includes>
            </resource>
        </resources>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skip>true</skip>
                </configuration>
            </plugin>

        </plugins>
    </build>

    <profiles>
        <profile>
            <id>isass-deploy</id>
            <build>
                <plugins>
                    <!--生成 Source jar 文件-->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <phase>compile</phase>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <!--生成Javadoc，关闭doclint,避免注解检查不通过-->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <!--Maven GPG插件用于使用以下配置对组件进行签名-->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.6</version>
                        <configuration>
                            <skip>false</skip>
                        </configuration>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                                <configuration>
                                    <gpgArguments>
                                        <arg>--pinentry-mode</arg>
                                        <arg>loopback</arg>
                                    </gpgArguments>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>

                    <!--Nexus Staging Maven插件是将组件部署到OSSRH并将其发布到Central Repository的推荐方法-->
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.8</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>ossrh</serverId>
                            <nexusUrl>https://oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>

                    <!-- release plugin,用于发布到release仓库部署插件 -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-release-plugin</artifactId>
                        <!--                        <configuration>-->
                        <!--                            <tagNameFormat>@{project.version}</tagNameFormat>-->
                        <!--                            <autoVersionSubmodules>true</autoVersionSubmodules>-->
                        <!--                            <releaseProfiles>isass-deploy</releaseProfiles>-->
                        <!--                            <useReleaseProfile>true</useReleaseProfile>-->
                        <!--                            <arguments>-DskipTests</arguments>-->
                        <!--                            <goals>deploy</goals>-->
                        <!--                        </configuration>-->
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <licenses>
        <license>
            <name>GNU Lesser General Public License Version 3</name>
            <url>http://www.gnu.org/licenses/lgpl.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <scm>
        <tag>master</tag>
        <url>https://gitee.com/isass/super</url>
        <connection>scm:git:git@gitee.com:isass/super.git</connection>
        <developerConnection>scm:git:git@gitee.com:isass/super.git</developerConnection>
    </scm>

    <developers>
        <developer>
            <name>Rain Lee</name>
            <email>lizhirong100@163.com</email>
            <organization>isass</organization>
        </developer>
    </developers>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>

        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
        </repository>
    </distributionManagement>

    <repositories>
        <repository>
            <id>alimaven</id>
            <name>aliyun maven</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>

        <repository>
            <id>center-snapshots</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </repository>
    </repositories>

</project>