<?xml version="1.0" encoding="UTF-8"?>
<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>

    <!-- 坐标 -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-dependencies</artifactId>
        <version>2.6.5</version>
    </parent>
    <groupId>cn.northsun.parent</groupId>
    <artifactId>parent</artifactId>
    <version>1.0.0</version>
    <packaging>pom</packaging>

    <!-- 属性值定义 -->
    <properties>
        <!-- maven 路径 -->
        <distributionManagement-repository-id>ace-base-releases</distributionManagement-repository-id>
        <distributionManagement-repository-url>${repositoriesUrlRoot}/ace-base-releases/
        </distributionManagement-repository-url>
        <distributionManagement-snapshotRepository-id>ace-base-snapshots</distributionManagement-snapshotRepository-id>
        <distributionManagement-snapshotRepository-url>${repositoriesUrlRoot}/ace-base-snapshots/
        </distributionManagement-snapshotRepository-url>

        <!-- 二方包版本号 -->
        <northsun.version>1.0.0</northsun.version>
        <!-- 三方包版本号 -->
        <aliyun.core.version>4.5.20</aliyun.core.version>
        <aliyun.dysmsapi.version>2.1.0</aliyun.dysmsapi.version>
        <aliyun.rocketmq.version>1.8.7.Final</aliyun.rocketmq.version>
        <aliyun.oss.version>3.10.2</aliyun.oss.version>
        <barcode4j.light.version>2.0</barcode4j.light.version>
        <fastjson.version>1.2.73</fastjson.version>
        <fileupload.version>1.4</fileupload.version>
        <kaptcha.version>2.3.2</kaptcha.version>
        <pdf.version>2.0.21</pdf.version>
        <poi.version>4.1.2</poi.version>
        <rocketmq.version>4.7.1</rocketmq.version>
        <sdk4j.version>2.0</sdk4j.version>
        <spymemcached.version>2.12.3</spymemcached.version>
        <swagger2.version>2.9.2</swagger2.version>
        <swagger.ui.version>1.9.6</swagger.ui.version>
        <xxljob.version>2.3.0</xxljob.version>
    </properties>

    <!-- 依赖管理 -->
    <dependencyManagement>
        <dependencies>
            <!-- northsun -->
            <dependency>
                <groupId>cn.northsun.cache</groupId>
                <artifactId>cache.controller</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.cache</groupId>
                <artifactId>cache.interfaces</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.cache</groupId>
                <artifactId>cache.memcache</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.cache</groupId>
                <artifactId>cache.memory</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.code</groupId>
                <artifactId>code.barcode</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.constant</groupId>
                <artifactId>constant</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.controller</groupId>
                <artifactId>controller</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.es</groupId>
                <artifactId>es.controller</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.es</groupId>
                <artifactId>es.service</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.exception</groupId>
                <artifactId>exception.interfaces</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.exception</groupId>
                <artifactId>exception.service</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.filelib</groupId>
                <artifactId>filelib.controller</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.filelib</groupId>
                <artifactId>filelib.domain</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.filelib</groupId>
                <artifactId>filelib.interfaces</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.filelib</groupId>
                <artifactId>filelib.local</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.filelib</groupId>
                <artifactId>filelib.oss</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.filelib</groupId>
                <artifactId>filelib.pdf</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.filelib</groupId>
                <artifactId>filelib.poi</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.filter</groupId>
                <artifactId>filter</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.hibernate</groupId>
                <artifactId>hibernate</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.httpclient</groupId>
                <artifactId>httpclient</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.mail</groupId>
                <artifactId>mail</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.mq</groupId>
                <artifactId>mq.controller</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.mq</groupId>
                <artifactId>mq.interfaces</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.mq</groupId>
                <artifactId>mq.rocketmq.aliyun</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.mq</groupId>
                <artifactId>mq.rocketmq.local</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.remoteservice</groupId>
                <artifactId>remoteservice</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.schedule</groupId>
                <artifactId>schedule</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.serialnumber</groupId>
                <artifactId>serialnumber.interfaces</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.serialnumber</groupId>
                <artifactId>serialnumber.service</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.service</groupId>
                <artifactId>service.interfaces</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.service</groupId>
                <artifactId>service.monitor</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.service</groupId>
                <artifactId>service.service</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.sms</groupId>
                <artifactId>sms</artifactId>
                <version>${northsun.version}</version>
            </dependency>
            <dependency>
                <groupId>cn.northsun.util</groupId>
                <artifactId>util</artifactId>
                <version>${northsun.version}</version>
            </dependency>

            <!-- aliyun -->
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-core</artifactId>
                <version>${aliyun.core.version}</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun</groupId>
                <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
                <version>${aliyun.dysmsapi.version}</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun.openservices</groupId>
                <artifactId>ons-client</artifactId>
                <version>${aliyun.rocketmq.version}</version>
            </dependency>
            <dependency>
                <groupId>com.aliyun.oss</groupId>
                <artifactId>aliyun-sdk-oss</artifactId>
                <version>${aliyun.oss.version}</version>
            </dependency>

            <!-- barcode4j -->
            <dependency>
                <groupId>net.sf.barcode4j</groupId>
                <artifactId>barcode4j-light</artifactId>
                <version>${barcode4j.light.version}</version>
            </dependency>

            <!-- fastjson -->
            <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>fastjson</artifactId>
                <version>${fastjson.version}</version>
            </dependency>

            <!-- fileupload -->
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>${fileupload.version}</version>
            </dependency>

            <!-- kaptcha -->
            <dependency>
                <groupId>com.github.penggle</groupId>
                <artifactId>kaptcha</artifactId>
                <version>${kaptcha.version}</version>
            </dependency>

            <!-- pdf -->
            <dependency>
                <groupId>org.apache.pdfbox</groupId>
                <artifactId>pdfbox</artifactId>
                <version>${pdf.version}</version>
            </dependency>

            <!-- poi -->
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-excelant</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml-schemas</artifactId>
                <version>${poi.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-scratchpad</artifactId>
                <version>${poi.version}</version>
            </dependency>

            <!-- rocketmq -->
            <dependency>
                <groupId>org.apache.rocketmq</groupId>
                <artifactId>rocketmq-client</artifactId>
                <version>${rocketmq.version}</version>
            </dependency>

            <!-- sdk4j -->
            <dependency>
                <groupId>net.gplatform</groupId>
                <artifactId>Sdk4J</artifactId>
                <version>${sdk4j.version}</version>
            </dependency>

            <!-- spymemcached -->
            <dependency>
                <groupId>net.spy</groupId>
                <artifactId>spymemcached</artifactId>
                <version>${spymemcached.version}</version>
            </dependency>

            <!-- swagger2 -->
            <dependency>
                <groupId>io.springfox</groupId>
                <artifactId>springfox-swagger2</artifactId>
                <version>${swagger2.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.xiaoymin</groupId>
                <artifactId>swagger-bootstrap-ui</artifactId>
                <version>${swagger.ui.version}</version>
            </dependency>

            <!-- xxljob -->
            <dependency>
                <groupId>com.xuxueli</groupId>
                <artifactId>xxl-job-core</artifactId>
                <version>${xxljob.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <!-- 依赖 -->
    <dependencies>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>provided</scope>
        </dependency>
    </dependencies>

    <!-- maven分发构建的位置 -->
    <distributionManagement>
        <repository>
            <id>${distributionManagement-repository-id}</id>
            <name>${distributionManagement-repository-id}</name>
            <url>${distributionManagement-repository-url}</url>
        </repository>
        <snapshotRepository>
            <id>${distributionManagement-snapshotRepository-id}</id>
            <name>${distributionManagement-snapshotRepository-id}</name>
            <url>${distributionManagement-snapshotRepository-url}</url>
        </snapshotRepository>
    </distributionManagement>

    <build>
        <!-- maven 插件 -->
        <plugins>
            <!-- maven 编译插件 -->
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <encoding>utf-8</encoding>
                </configuration>
            </plugin>

            <!-- maven 打包插件 -->
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-jar-plugin</artifactId>
                <configuration>
                    <includes>
                        <include>**</include>
                    </includes>
                </configuration>
            </plugin>
        </plugins>
    </build>

    <!-- 打包到中央库需要 -->
    <name>northsun</name>
    <description>northsun</description>
    <url>https://gitlab.com/northsun/northsun</url>
    <licenses>
        <license>
            <name>Apache License 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0</url>
        </license>
    </licenses>
    <scm>
        <connection>https://gitlab.com/northsun/northsun.git</connection>
        <url>https://gitlab.com/northsun/northsun</url>
    </scm>
    <developers>
        <developer>
            <name>ace</name>
            <email>1096200@qq.com</email>
            <roles>
                <role>Developer</role>
            </roles>
            <timezone>+8</timezone>
        </developer>
    </developers>
    <profiles>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <!-- Source -->
                    <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>
                    <!-- Javadoc -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <configuration>
                            <show>private</show>
                            <nohelp>true</nohelp>
                            <charset>UTF-8</charset>
                            <encoding>UTF-8</encoding>
                            <docencoding>UTF-8</docencoding>
                        </configuration>
                        <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.6</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <!--Compiler -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                            <source>8</source>
                            <target>8</target>
                            <fork>true</fork>
                            <verbose>true</verbose>
                            <encoding>UTF-8</encoding>
                            <showWarnings>false</showWarnings>
                        </configuration>
                    </plugin>
                    <!--Release -->
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-release-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
            <distributionManagement>
                <snapshotRepository>
                    <id>sonatype-nexus-snapshots</id>
                    <name>Sonatype Nexus Snapshots</name>
                    <url>https://s01.oss.sonatype.org/content/repositories/snapshots/</url>
                </snapshotRepository>
                <repository>
                    <id>sonatype-nexus-snapshots</id>
                    <name>Nexus Release Repository</name>
                    <url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>
            </distributionManagement>
        </profile>
    </profiles>
</project>