<?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.bootx.platform</groupId>
        <artifactId>bootx-platform-parent</artifactId>
        <version>1.3.6.2</version>
    </parent>

    <modelVersion>4.0.0</modelVersion>

    <artifactId>bootx-services</artifactId>
    <packaging>pom</packaging>
    <description>业务服务父pom</description>

    <modules>
        <module>service-baseapi</module>
        <module>service-iam</module>
        <module>service-notice</module>
    </modules>

    <profiles>
        <!-- 不发布到maven中央仓库的模块 -->
        <profile>
            <id>noDeploy</id>
            <modules>
                <module>service-visualization</module>
                <module>service-miniapp</module>
            </modules>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
    </profiles>

    <dependencies>
        <!-- 公共包 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>bootx-common-core</artifactId>
        </dependency>

        <!-- web mvc -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!-- 监控端点 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator</artifactId>
        </dependency>

        <!-- 监控端点 自动配置 sleuth 会依赖 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-actuator-autoconfigure</artifactId>
        </dependency>

        <!-- redis -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-redis</artifactId>
        </dependency>

        <!--若使用redisTemplate作为分布式锁底层，则需要引入-->
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>lock4j-redis-template-spring-boot-starter</artifactId>
            <version>${lock4j.version}</version>
        </dependency>
        <!--若使用redisson作为分布式锁底层，则需要引入-->
        <!--        <dependency>-->
        <!--            <groupId>com.baomidou</groupId>-->
        <!--            <artifactId>lock4j-redisson-spring-boot-starter</artifactId>-->
        <!--            <version>${lock4j.version}</version>-->
        <!--        </dependency>-->


        <!-- lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- lombok 配合 mapstruct -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok-mapstruct-binding</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- 类型转换处理器 -->
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct-processor</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- 类型转换 -->
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
        </dependency>

        <!-- TTL容器 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>transmittable-thread-local</artifactId>
        </dependency>

        <!-- 日志 -->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>${logstash-logback.version}</version>
        </dependency>

        <!-- fastjson -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
        </dependency>


        <!-- 自动维护表结构 -->
        <dependency>
            <groupId>cn.bootx</groupId>
            <artifactId>table-modify-mysql-boot-starter</artifactId>
            <scope>provided</scope>
        </dependency>

        <!-- starter json序列化 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-jackson</artifactId>
        </dependency>

        <!-- 幂等处理器 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-idempotency</artifactId>
        </dependency>

        <!-- 日志增强 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-log</artifactId>
        </dependency>

        <!-- mp增强 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-mybatis-plus</artifactId>
        </dependency>

        <!-- 缓存 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-cache</artifactId>
        </dependency>

        <!-- 请求头工具 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-header-holder</artifactId>
        </dependency>

        <!-- redis客户端 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-redis-client</artifactId>
        </dependency>

        <!-- 统一异常处理 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-exception-handler</artifactId>
        </dependency>

        <!-- mongo -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-mongo</artifactId>
            <optional>true</optional>
        </dependency>

        <!-- 发号器 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-sequence</artifactId>
        </dependency>

        <!-- swagger封装 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-swagger</artifactId>
        </dependency>

        <!-- spring 工具类 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-spring</artifactId>
        </dependency>

        <!-- 数据权限 -->
        <dependency>
            <groupId>cn.bootx.platform</groupId>
            <artifactId>common-starter-data-perm</artifactId>
        </dependency>

    </dependencies>

    <dependencyManagement>
        <dependencies>
            <!-- 二方库 -->
            <dependency>
                <groupId>cn.bootx.platform</groupId>
                <artifactId>common-super-query</artifactId>
                <version>${bootx-platform.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.bootx.platform</groupId>
                <artifactId>common-starter-quartz</artifactId>
                <version>${bootx-platform.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.bootx.platform</groupId>
                <artifactId>common-starter-audit-log</artifactId>
                <version>${bootx-platform.version}</version>
            </dependency>
            <!-- 三方库 -->

            <!-- captcha 验证码生成 -->
            <dependency>
                <groupId>com.github.whvcse</groupId>
                <artifactId>easy-captcha</artifactId>
                <version>${easy-captcha.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <finalName>${project.artifactId}</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
