<?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>cn.jdevelops</groupId>
    <artifactId>jdevelops</artifactId>
    <packaging>pom</packaging>
    <version>2.0.5</version>
    <name>jdevelops</name>
    <description>开发用的小组件</description>
    <url>https://github.com/en-o/Jdevelops</url>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.4.2</version>
    </parent>


    <organization>
        <name>tan</name>
        <url>https://tannn.cn/</url>
    </organization>

    <!-- 开源许可证 -->
    <licenses>
        <license>
            <name>MIT License</name>
            <url>https://www.opensource.org/licenses/mit-license.php</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <!-- 开发者信息 -->
    <developers>
        <developer>
            <id>tanning</id>
            <name>tanning</name>
            <email>1445763190@qq.com</email>
            <organization>cn.jdevelops</organization>
            <url>https://github.com/en-o/Jdevelops.git</url>
            <roles>
                <role>author</role>
            </roles>
        </developer>
    </developers>

    <!--  子模块 -->
    <modules>
        <!-- 工具模块 -->
        <module>jdevelops-utils</module>
        <!-- bean模块 -->
        <module>jdevelops-beans</module>
        <!-- 文档模块 -->
        <module>jdevelops-docs</module>
        <!-- 日志 -->
        <module>jdevelops-logs</module>
        <!-- 数据模块 -->
        <module>jdevelops-caches</module>
        <!-- 接口模块 -->
        <module>jdevelops-apis</module>
        <!-- aop模块 -->
        <module>jdevelops-aops</module>
        <!-- 全文检索 -->
        <module>jdevelops-search</module>
        <!-- web模块 -->
        <module>jdevelops-webs</module>
        <!-- cloud相关 -->
        <module>jdevelops-cloud</module>
        <!-- starter  -->
        <module>jdevelops-starters</module>
        <!-- 短信-->
        <module>jdevelops-sms</module>
        <!-- SPI -->
        <module>jdevelops-spi</module>
        <!-- 文件下载服务 -->
        <module>jdevelops-file</module>
    </modules>

    <properties>
        <argLine>-Dfile.encoding=UTF-8</argLine>
        <java.version>1.8</java.version>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <jdevelops.last.version>2.0.5</jdevelops.last.version>
        <knife4j.version>3.0.3</knife4j.version>
        <spring-core.version>[5.3.20,)</spring-core.version>
        <spring-cloud.version>2020.0.1</spring-cloud.version>
        <!--https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%E6%98%8E-->
        <alibaba-cloud.version>2021.1</alibaba-cloud.version>
        <springfox.version>3.0.0</springfox.version>
        <swagger-models.version>1.6.6</swagger-models.version>
        <swagger.version>2.9.2</swagger.version>
        <lombok.version>1.18.22</lombok.version>
        <mysql.version>[8.0.28,)</mysql.version>
        <mybatis-spring-boot-starter.version>2.1.2</mybatis-spring-boot-starter.version>
        <fastjson.version>1.2.83</fastjson.version>
        <jackson.version>2.11.1</jackson.version>
        <joda-time.version>2.10.6</joda-time.version>
        <guava.version>[30.0-jre,)</guava.version>
        <hutool.version>5.8.3</hutool.version>
        <validation.version>2.0.1.Final</validation.version>
        <gson.version>[2.8.9,)</gson.version>
        <aspect.version>1.9.5</aspect.version>
        <java-jwt.version>4.0.0</java-jwt.version>
        <commons-lang3.version>3.12.0</commons-lang3.version>
        <commons-beanutils.version>1.9.4</commons-beanutils.version>
        <commons-io.version>2.11.0</commons-io.version>
        <commons-logging.version>1.2</commons-logging.version>
        <soul.version>2.2.1</soul.version>
        <mybatis-plus.version>3.4.3.4</mybatis-plus.version>
        <skipTests>false</skipTests>
        <sms.aliyun.version>2.0.8</sms.aliyun.version>
        <elasticsearch.version>7.15.0</elasticsearch.version>
        <lucene-queryparser.version>8.11.0</lucene-queryparser.version>
        <skywalking.version>8.8.0</skywalking.version>
        <tlog.version>1.3.6</tlog.version>
        <p6spy.version>3.9.1</p6spy.version>
        <versions-maven-plugin.version>2.8.1</versions-maven-plugin.version>
        <maven-source-plugin.version>2.4</maven-source-plugin.version>
        <maven-javadoc-plugin.version>3.2.0</maven-javadoc-plugin.version>
        <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
        <weixin-java-miniapp.version>4.2.2.B</weixin-java-miniapp.version>
        <openfeign.version>3.0.5</openfeign.version>
        <bcpkix-jdk15on.version>1.69</bcpkix-jdk15on.version>
        <okhttp3.version>4.9.3</okhttp3.version>
        <!--http://dromara.gitee.io/image-combiner/-->
        <image-combiner.version>2.3.3</image-combiner.version>
    </properties>

    <!-- 子项目强行依赖   -->
    <dependencies>
        <!--   get set sl4j 依赖  -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>${lombok.version}</version>
        </dependency>
        <!--  配置文件相关  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <optional>true</optional>
        </dependency>
        <!--    参数校验    -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

        <!-- 单元测试 start -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-inline</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!-- 单元测试 end -->


    </dependencies>


    <!--
        只是声明依赖，并不实现引入

        管理jar包的版本，让子项目中引用一个依赖而不用显示的列出版本号。
        Maven会沿着父子层次向上走，直到找到一个拥有dependencyManagement元素的项目，
        然后它就会使用在这个dependencyManagement元素中指定的版本号
    -->
    <dependencyManagement>
        <dependencies>
            <!--springcloud版本管理依赖-->
            <dependency>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-dependencies</artifactId>
                <version>${spring-cloud.version}</version>
                <!-- 依赖的类型 -->
                <type>pom</type>
                <!-- 使用import来将 项目（dependencies） 做为依赖模块导入自己项目 -->
                <scope>import</scope>
            </dependency>

            <!--springcloud alibaba版本管理依赖-->
            <dependency>
                <groupId>com.alibaba.cloud</groupId>
                <artifactId>spring-cloud-alibaba-dependencies</artifactId>
                <version>${alibaba-cloud.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>

            <!-- 数据库依赖 -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>${mysql.version}</version>
            </dependency>

            <!-- alibaba json -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>
            <!-- jackson -->
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-annotations</artifactId>
                <version>${jackson.version}</version>
            </dependency>

            <!-- 时间类 - 线程安全 -->
            <dependency>
                <groupId>joda-time</groupId>
                <artifactId>joda-time</artifactId>
                <version>${joda-time.version}</version>
            </dependency>

            <!-- guava -->
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>${guava.version}</version>
            </dependency>

            <!-- json -->
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>


            <!-- apache beanutils -->
            <dependency>
                <groupId>commons-beanutils</groupId>
                <artifactId>commons-beanutils</artifactId>
                <version>${commons-beanutils.version}</version>
            </dependency>

            <!-- apache 常用工具 -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${commons-lang3.version}</version>
            </dependency>

            <!-- hutool -->
            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>${hutool.version}</version>
            </dependency>

            <!-- swagger -->
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-micro-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>knife4j-spring-boot-starter</artifactId>
                <version>${knife4j.version}</version>
            </dependency>

            <!--   jwt     -->
            <dependency>
                <groupId>com.auth0</groupId>
                <artifactId>java-jwt</artifactId>
                <version>${java-jwt.version}</version>
            </dependency>

            <!-- 切面 -->
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>${aspect.version}</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspect.version}</version>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-core</artifactId>
                <version>${spring-core.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.jdevelops</groupId>
                <artifactId>starters-jdevelops-boot-web</artifactId>
                <version>${jdevelops.last.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.jdevelops</groupId>
                <artifactId>starters-jdevelops-boot-web-jpa</artifactId>
                <version>${jdevelops.last.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.jdevelops</groupId>
                <artifactId>starters-jdevelops-web</artifactId>
                <version>${jdevelops.last.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!--开源地址-->
    <scm>
        <!-- 发布分支 -->
        <tag>master</tag>
        <url>https://github.com/en-o/Jdevelops.git</url>
        <connection>https://github.com/en-o/Jdevelops.git</connection>
        <developerConnection>https://github.com/en-o/Jdevelops.git</developerConnection>
    </scm>

    <!-- 项目发布管理 -->
    <distributionManagement>
        <!--私库-->
        <!--<repository>
            <id>tan-releases</id>
            <name>jdevelops-Release</name>
            <url>https://nexus.tannn.cn/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
            <id>tan-snapshots</id>
            <name>jdevelops-SNAPSHOTS</name>
            <url>https://nexus.tannn.cn/repository/maven-snapshots/</url>
        </snapshotRepository>-->
        <!--maven中央仓库配置 -->
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <!--Maven远程仓库设置 非必要，可以删除-->
    <repositories>
        <repository>
            <id>public</id>
            <name>aliyun nexus</name>
            <url>https://maven.aliyun.com/repository/public</url>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
    </repositories>


    <build>
        <plugins>
            <!-- 将源码一并打包 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>${maven-source-plugin.version}</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <!--意思是在什么阶段打包源文件-->
                        <phase>package</phase>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- javadoc 接口文档 -->
            <!-- Javadoc -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${maven-javadoc-plugin.version}</version>
                <configuration>
                    <doclint>none</doclint>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <charset>${project.build.sourceEncoding}</charset>
                    <docencoding>${project.build.sourceEncoding}</docencoding>
                    <tags>
                        <tag>
                            <name>description</name>
                            <placement>a</placement>
                            <head>描述</head>
                        </tag>
                        <tag>
                            <name>return</name>
                            <placement>a</placement>
                            <head>return</head>
                        </tag>
                        <tag>
                            <name>ClassName</name>
                            <placement>a</placement>
                            <head>类名</head>
                        </tag>
                        <tag>
                            <name>link</name>
                            <placement>a</placement>
                            <head>外链</head>
                        </tag>
                        <tag>
                            <head>参数</head>
                            <name>param</name>
                            <placement>a</placement>
                        </tag>
                        <tag>
                            <name>date</name>
                            <placement>a</placement>
                            <head>时间</head>
                        </tag>
                        <tag>
                            <name>author</name>
                            <placement>a</placement>
                            <head>作者</head>
                        </tag>
                    </tags>
                </configuration>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- 编译的时候指定JDK和编码 ,-->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${maven-compiler-plugin.version}</version>
                <configuration>
                    <source>${java.version}</source> <!-- 源代码使用的JDK版本 -->
                    <target>${java.version}</target> <!-- 需要生成的目标class文件的编译版本 -->
                    <encoding>${project.build.sourceEncoding}</encoding> <!-- 字符集编码 -->
                    <showWarnings>true</showWarnings><!--设置为true以显示编译警告-->
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${maven-surefire-plugin.version}</version>
                <configuration>
                    <skip>${skipTests}</skip>
                </configuration>
            </plugin>
            <!-- 全局版本修改 -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <version>${versions-maven-plugin.version}</version>
                <configuration>
                    <!--pom不备份-->
                    <generateBackupPoms>false</generateBackupPoms>
                </configuration>
            </plugin>
            <!-- maven中央仓库配置 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>
            <!--
            https://central.sonatype.org/publish/publish-maven/#nexus-staging-maven-plugin-for-deployment-and-release
            mvn clean deploy
            -->
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.7</version>
                <extensions>true</extensions>
                <configuration>
                    <serverId>ossrh</serverId>
                    <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                    <autoReleaseAfterClose>true</autoReleaseAfterClose>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>2.5.3</version>
                <configuration>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <useReleaseProfile>false</useReleaseProfile>
                    <releaseProfiles>release</releaseProfiles>
                    <goals>deploy</goals>
                </configuration>
            </plugin>
        </plugins>
    </build>


</project>
