<?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">
    <parent>
        <groupId>cn.itlym</groupId>
        <artifactId>shoulder-parent</artifactId>
        <version>1.2.1</version><!-- shoulder-version -->
        <relativePath>../../../shoulder-parent/pom.xml</relativePath>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>shoulder-autoconfiguration</artifactId>
    <name>${project.artifactId}</name>
    <url>https://doc.itlym.cn</url>
    <description>
        Shoulder 默认功能激活模块，包含了默认 Bean 装配的实现，以便在 spring-boot 环境开箱即用。
    </description>

    <dependencies>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-core</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-cluster</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <!-- mock redis -->
            <groupId>com.github.codemonstur</groupId>
            <artifactId>embedded-redis</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-crypto</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-crypto-negotiation</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-http</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-data-db</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>p6spy</groupId>
            <artifactId>p6spy</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-spring-boot3-starter</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-validation</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-web</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-operation-log</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-batch</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- https://github.com/uniVocity/univocity-parsers/releases -->
        <dependency>
            <groupId>com.univocity</groupId>
            <artifactId>univocity-parsers</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- xml 转换 https://github.com/x-stream/xstream/releases -->
        <dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-monitor</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-cache</artifactId>
            <optional>true</optional>
        </dependency>
        <!-- caffeine -->
        <dependency>
            <groupId>com.github.ben-manes.caffeine</groupId>
            <artifactId>caffeine</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- ============================= api doc ============================= -->

        <!--        <dependency>-->
        <!--            <groupId>com.github.xiaoymin</groupId>-->
        <!--            <artifactId>knife4j-spring-boot-starter</artifactId>-->
        <!--            <optional>true</optional>-->
        <!--        </dependency>-->

        <!-- ============================= security ============================= -->
        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-security</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>cn.itlym</groupId>
            <artifactId>shoulder-security-code</artifactId>
            <optional>true</optional>
        </dependency>


        <!-- oauth2 授权服务器相关依赖 -->
        <dependency>
            <groupId>org.springframework.security.oauth.boot</groupId>
            <artifactId>spring-security-oauth2-autoconfigure</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk18on</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcpkix-jdk18on</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- spring security5 oauth2 资源服务器相关依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-oauth2-resource-server</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- ======================================================================================= -->

        <!-- 生成 META-INF/spring-autoconfigure-metadata.properties，加快 spring boot 启动时排除不匹配的自动装配信息，用于缩短启动时间 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-autoconfigure-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- 根据 java doc 生成 additional-spring-configuration-metadata.json，这样 IDE 中配置项会有提示。但不支持 Enum 和 Collections -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- 单测 condition -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <optional>true</optional>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <!-- compiler settings -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>

            <!-- attach source -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>

            <!-- javadoc -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
            </plugin>

            <!-- deploy -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
            </plugin>

            <!-- unit test settings when mvn test -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>

        </plugins>
    </build>


</project>
