<?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>top.continew</groupId>
    <artifactId>continew-starter-bom</artifactId>
    <version>${revision}</version>
    <packaging>pom</packaging>
    <description>ContiNew Starter BOM</description>

    <properties>
        <revision>2.12.0-SNAPSHOT</revision>
    </properties>

    <dependencyManagement>
        <dependencies>
            <!-- 核心模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-core</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- JSON 模块 - Jackson -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-json-jackson</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- API 文档模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-api-doc</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- Web 模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-web</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 认证模块 - SaToken -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-auth-satoken</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 认证模块 - JustAuth -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-auth-justauth</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 数据访问模块 - MyBatis Plus -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-data-mp</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 数据访问模块 - MyBatis Flex -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-data-mf</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 数据访问模块 - 核心模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-data-core</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 缓存模块 - Redisson -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-cache-redisson</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 缓存模块 - Spring Cache -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-cache-springcache</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 缓存模块 - JetCache -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-cache-jetcache</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 安全模块 - 密码编码器 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-security-password</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 安全模块 - 加密 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-security-crypto</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 安全模块 - 脱敏 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-security-mask</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 安全模块 - XSS 过滤 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-security-xss</artifactId>
            </dependency>
            <!-- 安全模块 - 敏感词 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-security-sensitivewords</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 限流模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-ratelimiter</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 幂等模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-idempotent</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 链路追踪模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-trace</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 验证码模块 - 图形验证码 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-captcha-graphic</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 验证码模块 - 行为验证码 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-captcha-behavior</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 消息模块 - 邮件 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-messaging-mail</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 消息模块 - WebSocket -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-messaging-websocket</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 日志模块 - 基于拦截器实现（Spring Boot Actuator HttpTrace 增强版） -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-log-interceptor</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 日志模块 - 基于 AOP 实现 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-log-aop</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 日志模块 - 核心模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-log-core</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 文件处理模块 - Excel -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-file-excel</artifactId>
                <version>${revision}</version>
            </dependency>


            <!-- 存储模块 - 本地存储 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-storage-local</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 存储模块 - 对象存储 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-storage-oss</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 存储模块 - 核心模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-storage-core</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- License 模块 - 生成器 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-license-generator</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- License 模块 - 校验器 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-license-verifier</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- License 模块 - 核心模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-license-core</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 扩展模块 - CRUD - MyBatis Plus ORM 模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-extension-crud-mp</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 扩展模块 - CRUD - MyBatis Flex ORM 模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-extension-crud-mf</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 扩展模块 - CRUD - 核心模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-extension-crud-core</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 扩展模块 - 数据权限 - MyBatis Plus ORM 模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-extension-datapermission-mp</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 扩展模块 - 数据权限 - 核心模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-extension-datapermission-core</artifactId>
                <version>${revision}</version>
            </dependency>

            <!-- 扩展模块 - 多租户 - MyBatis Plus ORM 模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-extension-tenant-mp</artifactId>
                <version>${revision}</version>
            </dependency>
            <!-- 扩展模块 - 多租户 - 核心模块 -->
            <dependency>
                <groupId>top.continew</groupId>
                <artifactId>continew-starter-extension-tenant-core</artifactId>
                <version>${revision}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <!-- 统一版本号插件 -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>flatten-maven-plugin</artifactId>
                <version>1.7.0</version>
                <executions>
                    <execution>
                        <!-- Create an effective POM (with versions expanded) for the CLI and documentation -->
                        <id>flatten-effective-pom</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>flatten</goal>
                        </goals>
                        <configuration>
                            <updatePomFile>false</updatePomFile>
                            <outputDirectory>${project.build.directory}/effective-pom</outputDirectory>
                            <flattenedPomFilename>continew-starter-dependencies.xml</flattenedPomFilename>
                            <flattenMode>oss</flattenMode>
                            <pomElements>
                                <dependencyManagement>expand</dependencyManagement>
                                <pluginManagement>expand</pluginManagement>
                                <properties>remove</properties>
                                <repositories>remove</repositories>
                            </pomElements>
                        </configuration>
                    </execution>
                    <execution>
                        <!-- Flatten and simplify our own POM for install/deploy -->
                        <id>flatten</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>flatten</goal>
                        </goals>
                        <configuration>
                            <updatePomFile>true</updatePomFile>
                            <flattenMode>bom</flattenMode>
                            <pomElements>
                                <parent>expand</parent>
                                <properties>keep</properties>
                                <pluginManagement>keep</pluginManagement>
                                <repositories>remove</repositories>
                            </pomElements>
                        </configuration>
                    </execution>
                    <execution>
                        <id>flatten-clean</id>
                        <phase>clean</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>3.1.0</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.sonatype.central</groupId>
                        <artifactId>central-publishing-maven-plugin</artifactId>
                        <version>0.4.0</version>
                        <extensions>true</extensions>
                        <configuration>
                            <publishingServerId>central</publishingServerId>
                            <tokenAuth>true</tokenAuth>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <url>https://github.com/continew-org/continew-starter</url>
    <licenses>
        <license>
            <name>GNU LESSER GENERAL PUBLIC LICENSE</name>
            <url>http://www.gnu.org/licenses/lgpl.html</url>
        </license>
    </licenses>
    <developers>
        <developer>
            <id>charles7c</id>
            <name>Charles7c</name>
            <email>charles7c@126.com</email>
            <roles>
                <role>Creator</role>
                <role>Java Development Engineer</role>
            </roles>
            <timezone>+8</timezone>
            <url>https://github.com/Charles7c</url>
        </developer>
    </developers>
    <scm>
        <connection>scm:git:git@github.com:continew-org/continew-starter.git</connection>
        <developerConnection>scm:git:git@github.com:continew-org/continew-starter.git</developerConnection>
        <url>https://github.com/continew-org/continew-starter</url>
    </scm>
</project>