<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.xiaojukeji.kafka</groupId>
    <artifactId>km</artifactId>
    <packaging>pom</packaging>
    <version>${revision}</version>

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

    <properties>
        <revision>3.4.0</revision>

        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <maven.test.skip>true</maven.test.skip>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <file_encoding>UTF-8</file_encoding>

        <swagger2.version>2.9.2</swagger2.version>
        <swagger.version>1.5.21</swagger.version>

        <!-- kafka -->
        <kafka.version>2.8.1</kafka.version>
        <kafka-clients.version>2.8.1</kafka-clients.version>
        <kafka-connect-runtime.version>2.8.1</kafka-connect-runtime.version>

        <elasticsearch.version>6.6.2</elasticsearch.version>
        <mybatis-plus.version>3.4.2</mybatis-plus.version>
        <caffeine.version>2.8.8</caffeine.version>

        <springboot.version>2.3.7.RELEASE</springboot.version>
        <spring.version>5.3.19</spring.version>
        <tomcat.version>9.0.41</tomcat.version>
        <jackson-bom.version>2.13.5</jackson-bom.version>

        <fastjson.version>1.2.83</fastjson.version>

        <log4j2.version>2.16.0</log4j2.version>
        <logback.version>1.2.8</logback.version>

        <!--LogICommon-->
        <logi-security.version>2.10.13</logi-security.version>
    </properties>

    <modules>
        <module>km-console</module>
        <module>km-common</module>
        <module>km-persistence</module>
        <module>km-core</module>
        <module>km-biz</module>
        <module>km-extends/km-account</module>
        <module>km-extends/km-monitor</module>
        <module>km-task</module>
        <module>km-collector</module>
        <module>km-rest</module>
        <module>km-dist</module>
        <module>km-enterprise/km-ha</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <!-- swagger -->
            <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>io.swagger</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger</groupId>
                <artifactId>swagger-models</artifactId>
                <version>${swagger.version}</version>
            </dependency>

            <!-- javax -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>4.0.1</version>
            </dependency>
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>1.3.2</version>
            </dependency>

            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.17</version>
            </dependency>

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

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

            <!-- commons -->
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>3.6.3</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>jline</groupId>
                        <artifactId>jline</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.6</version>
            </dependency>

            <dependency>
                <groupId>org.mariadb.jdbc</groupId>
                <artifactId>mariadb-java-client</artifactId>
                <version>3.0.5</version>
            </dependency>

            <dependency>
                <groupId>io.dropwizard.metrics</groupId>
                <artifactId>metrics-core</artifactId>
                <version>4.1.2</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-pool2</artifactId>
                <version>2.6.2</version>
            </dependency>

            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.13</version>
            </dependency>

            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-util</artifactId>
                <version>9.4.39.v20210325</version>
            </dependency>

            <dependency>
                <groupId>com.github.ben-manes.caffeine</groupId>
                <artifactId>caffeine</artifactId>
                <version>${caffeine.version}</version>
            </dependency>

            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>1.9.4</version>
            </dependency>

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

            <!-- kafka -->
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka-clients</artifactId>
                <version>${kafka-clients.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_2.13</artifactId>
                <version>${kafka.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.kafka</groupId>
                <artifactId>connect-runtime</artifactId>
                <version>${kafka-connect-runtime.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.kafka</groupId>
                        <artifactId>connect-transforms</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.kafka</groupId>
                        <artifactId>connect-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-log4j12</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>25.0-jre</version>
            </dependency>

            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.6</version>
            </dependency>

            <dependency>
                <groupId>net.sf.jopt-simple</groupId>
                <artifactId>jopt-simple</artifactId>
                <version>5.0.4</version>
            </dependency>

            <!-- logi -->
            <dependency>
                <groupId>io.github.zqrferrari</groupId>
                <artifactId>logi-job-spring-boot-starter</artifactId>
                <version>1.0.23</version>
                <exclusions>
                    <exclusion>
                        <artifactId>oshi-core</artifactId>
                        <groupId>com.github.oshi</groupId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- 感谢 linG5821 的反馈，LogiJob中会依赖oshi-core，但是oshi-core使用的版本过低，因此windows系统上会存在问题，因此升级oshi-core版本 -->
            <dependency>
                <groupId>com.github.oshi</groupId>
                <artifactId>oshi-core</artifactId>
                <version>5.6.1</version>
            </dependency>

            <dependency>
                <groupId>io.github.zqrferrari</groupId>
                <artifactId>logi-elasticsearch-client</artifactId>
                <version>1.0.24</version>
                <exclusions>
                    <exclusion>
                        <artifactId>jna</artifactId>
                        <groupId>org.elasticsearch</groupId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>org.elasticsearch</groupId>
                <artifactId>elasticsearch</artifactId>
                <version>2.3.3</version>
            </dependency>

            <dependency>
                <groupId>io.github.zqrferrari</groupId>
                <artifactId>logi-log</artifactId>
                <version>1.0.6</version>
                <exclusions>
                    <exclusion>
                        <artifactId>log4j-slf4j-impl</artifactId>
                        <groupId>org.apache.logging.log4j</groupId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.aspectj</groupId>
                        <artifactId>aspectjrt</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>io.github.zqrferrari</groupId>
                <artifactId>logi-security-spring-boot-starter</artifactId>
                <version>${logi-security.version}</version>
            </dependency>
            <!-- logi end -->

            <!-- prometheus -->
            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-registry-prometheus</artifactId>
                <version>1.5.4</version>
            </dependency>

            <dependency>
                <groupId>io.micrometer</groupId>
                <artifactId>micrometer-core</artifactId>
                <version>1.5.4</version>
            </dependency>
            <!-- prometheus end -->

            <!--testcontainers-->
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers-bom</artifactId>
                <version>1.17.6</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!--testcontainers end-->

            <!-- MDC -->
            <dependency>
                <groupId>net.logstash.logback</groupId>
                <artifactId>logstash-logback-encoder</artifactId>
                <version>7.1.1</version>
            </dependency>
            <!-- MDC end -->
        </dependencies>
    </dependencyManagement>
</project>