<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ @MS 2022-12-13
  ~ Copyright (c) 2001-2023 萌森
  ~ 保留所有权利
  ~ 本软件为萌森工作室所有及包含机密信息，须遵守其相关许可证条款进行使用。
  ~ Copyright (c) 2001-2023 Meng Sen
  ~ All rights reserved
  ~ This software is owned by Mengsen Studio and contains confidential information, and must be used in accordance with its relevant license terms.
  ~ Website：https://qyg2297248353.top
  -->

<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         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>io.sourceforge.github</groupId>
    <artifactId>tools</artifactId>
    <version>1.2.2</version>
    <packaging>pom</packaging>
    <name>Java tools 工具箱</name>
    <description>萌森工作室-统一工具箱</description>
    <url>https://github.com/QYG2297248353/tools.git</url>

    <!-- Issue 提问 -->
    <issueManagement>
        <system>Github Issue</system>
        <url>https://github.com/QYG2297248353/tools/issues</url>
    </issueManagement>

    <!-- 统一配置 -->
    <properties>
        <!-- 项目配置 -->
        <ms.tools.version>1.2.2</ms.tools.version>
        <lombok.version>1.18.14</lombok.version>

        <!-- 基础配置 -->
        <java.version>8</java.version>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

        <!-- SpringBoot 版本信息 -->
        <spring-cloud-alibaba.version>2021.0.5.0</spring-cloud-alibaba.version>
        <spring-cloud.version>2021.0.7-SNAPSHOT</spring-cloud.version>
        <spring-boot.version>2.7.12-SNAPSHOT</spring-boot.version>

        <!-- maven-compiler-plugin 构建插件 -->
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <maven.source.plugin.version>2.2.1</maven.source.plugin.version>
        <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
        <maven.deploy.skip>true</maven.deploy.skip>
        <maven.deploy.verbose>true</maven.deploy.verbose>

        <!-- 构建插件 -->
        <maven.surefire.plugin.version>2.16</maven.surefire.plugin.version>
        <maven.deploy.plugin.version>2.8.2</maven.deploy.plugin.version>
        <maven.javadoc.plugin.version>2.9.1</maven.javadoc.plugin.version>
        <maven.assembly.plugin.version>2.4.1</maven.assembly.plugin.version>
        <nexus.staging.maven.plugin.version>1.6.7</nexus.staging.maven.plugin.version>
        <maven.gpg.plugin.version>1.5</maven.gpg.plugin.version>

        <!-- 覆盖组件 -->
        <okhttp.version>4.10.0-RC1</okhttp.version>
    </properties>

    <!-- 中央仓库仓库 -->
    <distributionManagement>
        <snapshotRepository>
            <id>oss</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>oss</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <!-- 公共许可证 -->
    <licenses>
        <license>
            <name>Server Side Public License</name>
            <url>https://www.mongodb.com/licensing/server-side-public-license</url>
            <distribution>repo</distribution>
            <comments>A not business-friendly OSS license</comments>
        </license>
    </licenses>

    <!-- 仓库信息 -->
    <scm>
        <url>https://qyg2297248353.github.io</url>
        <connection>https://github.com/QYG2297248353/tools.git</connection>
    </scm>

    <!-- 开发者信息 -->
    <developers>
        <developer>
            <name>MengSen</name>
            <id>Ms</id>
            <email>qyg2297248353@gmail.com</email>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>+8</timezone>
            <url>https://qyg2297248353.github.io/</url>
        </developer>
    </developers>

    <dependencyManagement>
        <dependencies>
            <!-- 组件依赖规范 -->
            <!-- Cloud组件规范 -->
            <dependency>
                <groupId>io.sourceforge.github.components.cloud</groupId>
                <artifactId>alibaba-nacos</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components.cloud</groupId>
                <artifactId>alibaba-sentinel</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components.cloud</groupId>
                <artifactId>qiniu-cloud</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components.cloud</groupId>
                <artifactId>spring-boot-starter</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components.cloud</groupId>
                <artifactId>spring-gateway</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components.cloud</groupId>
                <artifactId>spring-openfeign</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <!-- 覆盖组件 -->
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp</artifactId>
                <version>${okhttp.version}</version>
            </dependency>

            <!-- 组件规范 -->
            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>lombok</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>dysmsapi20170525</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>fastjson</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>easyexcel</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>commons-compress</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>commons-io</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>tika-core</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>dnsjava</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>guava</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>zxing-javase</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>javax.interceptor-api</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>javax-mail</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>javax-servlet-api</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>jsonwebtoken-jjwt</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>lingala-zip4j</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>opencsv</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <!-- Spring 组件版本规范 -->
            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-annotation</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-beans</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-boot-autoconfigure</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-context</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-context-support</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-core</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-data-commons</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-data-jpa</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-expression</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-jdbc</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-data-redis</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-web</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <!-- 组合式组件 -->
            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>spring-boot</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>squareup-okhttp3</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>yaml-snakeyaml</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.components</groupId>
                <artifactId>minio</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <!-- 开发组件 -->
            <dependency>
                <groupId>io.sourceforge.github.core</groupId>
                <artifactId>ms-core</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.canvas</groupId>
                <artifactId>ms-canvas</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.resources</groupId>
                <artifactId>ms-resources</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.security</groupId>
                <artifactId>ms-security</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.spring</groupId>
                <artifactId>ms-spring</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.redis</groupId>
                <artifactId>ms-redis</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.annotation</groupId>
                <artifactId>ms-annotation</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.minio</groupId>
                <artifactId>ms-minio</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.network</groupId>
                <artifactId>ms-network</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.push</groupId>
                <artifactId>ms-push</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>

            <dependency>
                <groupId>io.sourceforge.github.api</groupId>
                <artifactId>ms-api</artifactId>
                <version>${ms.tools.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <modules>
        <!-- 公共组件 -->
        <module>ms-components</module>
        <!-- 核心组件 -->
        <module>ms-core</module>
        <module>ms-canvas</module>
        <module>ms-resources</module>
        <module>ms-security</module>
        <module>ms-spring</module>
        <module>ms-redis</module>
        <module>ms-annotation</module>
        <module>ms-minio</module>
        <module>ms-network</module>
        <module>ms-push</module>
        <module>ms-api</module>
        <!-- 集合工具 -->
        <module>ms-tools</module>
    </modules>

    <!-- 构建插件 -->
    <build>
        <plugins>
            <!--提供source 源码文件-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>${maven.source.plugin.version}</version>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- 打包版本配置 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven.compiler.plugin.version}</version>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                    <encoding>${maven.compiler.encoding}</encoding>
                    <!-- 打印编译器执行信息 -->
                    <verbose>${maven.deploy.verbose}</verbose>
                    <!-- 跳过测试编译 -->
                    <skip>${maven.deploy.skip}</skip>
                    <compilerArgs>
                        <!-- 过期方法警告 -->
                        <arg>-Xlint:deprecation</arg>
                    </compilerArgs>
                    <annotationProcessorPaths>
                        <path>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                            <version>${lombok.version}</version>
                        </path>
                        <path>
                            <groupId>org.springframework.boot</groupId>
                            <artifactId>spring-boot-configuration-processor</artifactId>
                            <version>${spring-boot.version}</version>
                        </path>
                    </annotationProcessorPaths>
                    <!-- 解决程序包找不到 -->
                    <compilerArguments>
                        <!-- 解决maven命令编译报错，因为rt.jar 和jce.jar 和jsse.jar在jre的lib下面，不在jdk的lib下面，
                        导致maven找不到（java7以后会出现这个问题）-->
                        <bootclasspath>
                            ${java.home}\lib\rt.jar;${java.home}\lib\jce.jar;${java.home}\lib\jsse.jar
                        </bootclasspath>
                    </compilerArguments>
                </configuration>
            </plugin>

            <!-- 文档生成 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${maven.javadoc.plugin.version}</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <show>public</show>
                    <charset>UTF-8</charset>
                    <encoding>UTF-8</encoding>
                    <docencoding>UTF-8</docencoding>
                </configuration>
            </plugin>

            <!-- gpg加密插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-gpg-plugin</artifactId>
                <version>${maven.gpg.plugin.version}</version>
                <executions>
                    <execution>
                        <id>sign-artifacts</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>sign</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <!-- 中央仓库插件 -->
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>${nexus.staging.maven.plugin.version}</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>oss</serverId>
                    <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                    <stagingProgressTimeoutMinutes>20</stagingProgressTimeoutMinutes>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                    <autoDropAfterRelease>true</autoDropAfterRelease>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!-- 远程仓库配置 -->
    <repositories>
        <repository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </repository>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
        </repository>
        <repository>
            <id>aliyun</id>
            <name>aliyun</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
        <repository>
            <id>repo1</id>
            <name>repo1</name>
            <url>https://repo1.maven.org/maven2</url>
        </repository>
        <repository>
            <id>sonatype-releases</id>
            <name>sonatype-releases</name>
            <url>https://s01.oss.sonatype.org/content/repositories/releases/</url>
        </repository>
        <repository>
            <id>sonatype-snapshots</id>
            <name>sonatype-snapshots</name>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>spring-milestones</id>
            <name>Spring Milestones</name>
            <url>https://repo.spring.io/milestone</url>
        </pluginRepository>
        <pluginRepository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/snapshot</url>
        </pluginRepository>
        <pluginRepository>
            <id>aliyun</id>
            <name>aliyun</name>
            <url>https://maven.aliyun.com/repository/public</url>
        </pluginRepository>
        <pluginRepository>
            <id>repo1</id>
            <name>repo1</name>
            <url>https://repo1.maven.org/maven2</url>
        </pluginRepository>
        <pluginRepository>
            <id>sonatype-releases</id>
            <name>sonatype-releases</name>
            <url>https://s01.oss.sonatype.org/content/repositories/releases/</url>
        </pluginRepository>
        <pluginRepository>
            <id>sonatype-snapshots</id>
            <name>sonatype-snapshots</name>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
        </pluginRepository>
    </pluginRepositories>

</project>
