<?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>

    <modules>
        <module>ms-core</module>
        <module>ms-id</module>
        <module>ms-math</module>
        <module>ms-bean</module>
        <module>ms-canvas</module>
        <module>ms-resources</module>
        <module>ms-security</module>
        <module>ms-network</module>
        <module>ms-push</module>
        <module>ms-api</module>
        <module>ms-tools</module>
    </modules>

    <!-- 项目基本信息 -->
    <groupId>io.github.qyg2297248353</groupId>
    <artifactId>tools</artifactId>
    <version>v1.0.0</version>
    <packaging>pom</packaging>
    <name>Java tools 工具箱</name>
    <description>commons迭代版本</description>
    <url>https://github.com/QYG2297248353/tools.git</url>

    <issueManagement>
        <system>Github Issue</system>
        <url>https://github.com/QYG2297248353/tools/issues</url>
    </issueManagement>

    <!-- 编码与版本 -->
    <properties>
        <!-- 模块跳过配置 -->
        <maven.install.skip>true</maven.install.skip>
        <maven.deploy.skip>true</maven.deploy.skip>
        <maven.deploy.verbose>true</maven.deploy.verbose>
        <!-- 设置jdk版本为 1.8 -->
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <!-- 设置编码为 UTF-8 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <!-- 版本信息 -->
        <spring.boot.version>2.7.6</spring.boot.version>
        <lombok.version>1.18.24</lombok.version>
        <maven.compiler.plugin.version>3.8.1</maven.compiler.plugin.version>
        <maven.surefire.plugin.version>2.16</maven.surefire.plugin.version>
        <maven.source.plugin.version>2.2.1</maven.source.plugin.version>
        <apache.commons.io>2.11.0</apache.commons.io>
    </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>MenSeng</name>
            <id>Ms</id>
            <email>qyg2297248353@gmail.com</email>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>+8</timezone>
            <url>https://qyg2297248353.top</url>
        </developer>
    </developers>

    <!-- 远程仓库配置 -->
    <repositories>
        <repository>
            <id>ALiYunMaven</id>
            <url>https://maven.aliyun.com/repository/public</url>
        </repository>
        <repository>
            <id>Repo1</id>
            <url>https://repo1.maven.org/maven2</url>
        </repository>
        <repository>
            <id>Jboss</id>
            <url>https://repository.jboss.org/nexus/content/groups/public</url>
        </repository>
        <repository>
            <id>HuaweiCloud</id>
            <url>https://repo.huaweicloud.com/repository/maven</url>
        </repository>
    </repositories>

    <!-- SpringBoot -->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-dependencies</artifactId>
                <version>${spring.boot.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- 配置插件 -->
    <profiles>
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <!-- maven-surefire-plugin 插件，用于运行单元测试 -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>${maven.surefire.plugin.version}</version>
                        <configuration>
                            <!-- 跳过测试类运行 -->
                            <skip>${maven.deploy.skip}</skip>
                        </configuration>
                    </plugin>

                    <!-- maven-compiler-plugin 插件，解决 Lombok + MapStruct 组合 -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>${maven.compiler.plugin.version}</version>
                        <configuration>
                            <!-- 源数据生成 -->
                            <proc>none</proc>
                            <!-- 源代码使用的JDK版本 -->
                            <source>${maven.compiler.source}</source>
                            <!-- 需要生成的目标class文件的编译版本 -->
                            <target>${maven.compiler.target}</target>
                            <!-- 设置编码为 UTF-8 -->
                            <encoding>${maven.compiler.encoding}</encoding>
                            <!-- 打印编译器执行信息 -->
                            <verbose>${maven.deploy.verbose}</verbose>
                            <!-- 跳过测试编译 -->
                            <skip>${maven.deploy.skip}</skip>
                            <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>
                        </configuration>
                    </plugin>

                    <!--提供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-javadoc-plugin</artifactId>
                        <version>2.9.1</version>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>

                    <!-- gpg加密插件 -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.5</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>1.6.7</version>
                        <extensions>true</extensions>
                        <configuration>
                            <serverId>oss</serverId>
                            <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>
