<?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>
    <parent>
        <groupId>top.charles7c.continew</groupId>
        <artifactId>continew-starter-dependencies</artifactId>
        <version>${revision}</version>
        <relativePath>./continew-starter-dependencies</relativePath>
    </parent>

    <artifactId>continew-starter</artifactId>
    <packaging>pom</packaging>

    <name>${project.artifactId}</name>
    <description>
        ContiNew Starter 是一种特殊类型的 Spring Boot Starter，
        其作用与常规的 Starter 类似，它可以帮助开发人员快速集成常用的第三方库或工具到 Spring 应用程序中。
        ContiNew Starter 包含了一系列经过优化和配置的依赖包，可轻松集成到应用中，
        从而避免开发人员手动引入依赖的麻烦，为 Spring Boot 项目的灵活快速构建提供支持。
    </description>
    <url>https://github.com/Charles7c/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>
        <developer>
            <id>bull-bcls</id>
            <name>Bull-BCLS</name>
            <email>Tomcat416@163.com</email>
            <roles>
                <role>Java Development Engineer</role>
            </roles>
            <timezone>+8</timezone>
            <url>https://github.com/Bull-BCLS</url>
        </developer>
    </developers>
    <scm>
        <url>https://github.com/Charles7c/continew-starter</url>
        <connection>scm:git:git@github.com:Charles7c/continew-starter.git</connection>
        <developerConnection>scm:git:git@github.com:Charles7c/continew-starter.git</developerConnection>
    </scm>

    <properties>
        <!-- Maven Environment Versions -->
        <java.version>17</java.version>
        <resource.delimiter>@</resource.delimiter>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>
        <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    </properties>

    <modules>
        <module>continew-starter-dependencies</module>
        <module>continew-starter-core</module>
        <module>continew-starter-json</module>
        <module>continew-starter-api-doc</module>
        <module>continew-starter-log</module>
        <module>continew-starter-storage</module>
        <module>continew-starter-file</module>
        <module>continew-starter-captcha</module>
        <module>continew-starter-cache</module>
        <module>continew-starter-data</module>
        <module>continew-starter-auth</module>
        <module>continew-starter-messaging</module>
        <module>continew-starter-extension</module>
    </modules>

    <dependencies>
        <!-- Lombok（在 Java 开发过程中用注解的方式，简化了 JavaBean 的编写，避免了冗余和样板式代码，让编写的类更加简洁） -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional> <!-- 表示依赖不会被传递 -->
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <!-- 代码等格式化插件 -->
            <plugin>
                <groupId>com.diffplug.spotless</groupId>
                <artifactId>spotless-maven-plugin</artifactId>
                <version>2.40.0</version>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>apply</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <java>
                        <removeUnusedImports/>
                        <licenseHeader>
                            <file>code-style/license-header</file>
                        </licenseHeader>
                    </java>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>flatten-maven-plugin</artifactId>
                <version>1.5.0</version>
                <configuration>
                    <updatePomFile>true</updatePomFile>
                    <flattenMode>oss</flattenMode>
                    <pomElements>
                        <parent>expand</parent>
                        <properties>keep</properties>
                    </pomElements>
                </configuration>
                <executions>
                    <execution>
                        <id>flatten</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>flatten</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>flatten.clean</id>
                        <phase>clean</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
</project>