<?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>com.github.wangzihaogithub</groupId>
    <artifactId>spring-boot-protocol</artifactId>
    <version>2.2.9</version>
    <packaging>jar</packaging>

    <name>Spring Boot Protocol</name>
    <description>Spring Boot Protocol</description>
    <url>https://github.com/wangzihaogithub/spring-boot-protocol.git</url>

    <parent>
        <groupId>org.sonatype.oss</groupId>
        <artifactId>oss-parent</artifactId>
        <version>9</version>
    </parent>

    <properties>
        <argLine>-Dfile.encoding=UTF-8</argLine>
        <!-- 文件拷贝时的编码 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <!-- 编译时的编码 -->
        <maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        <java.version>1.8</java.version>

        <spring-boot.version>2.5.12</spring-boot.version>
        <servlet-api.version>4.0.1</servlet-api.version>

        <javax-websocket-api.version>1.1</javax-websocket-api.version>

        <netty.version>4.1.77.Final</netty.version>
        <netty.boringssl.version>2.0.34.Final</netty.boringssl.version>
        <fastjson.version>1.2.79</fastjson.version>
        <reactive-streams.version>1.0.3</reactive-streams.version>
    </properties>

    <licenses>
        <license>
            <name>The Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>
    <scm>
        <connection>scm:git:https://github.com/wangzihaogithub/spring-boot-protocol.git</connection>
        <developerConnection>scm:git:git@github.com:wangzihaogithub/spring-boot-protocol.git</developerConnection>
        <url>git@github.com:wangzihaogithub/spring-boot-protocol.git</url>
        <tag>v2.2.9</tag>
    </scm>

    <!-- 开发者信息 -->
    <developers>
        <developer>
            <id>wangzihao</id>
            <name>wangzihao</name>
            <email>842156727@qq.com</email>
        </developer>
    </developers>

    <dependencies>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
            <version>${netty.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-codec-haproxy</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-codec-memcache</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-codec-redis</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-codec-smtp</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-codec-stomp</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-codec-xml</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-codec-socks</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-codec-dns</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-resolver-dns</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-resolver-dns-native-macos</artifactId>
                </exclusion>

                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-resolver-dns-classes-macos</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-transport-udt</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-transport-sctp</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>io.netty</groupId>
                    <artifactId>netty-transport-rxtx</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>${fastjson.version}</version>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-tcnative-boringssl-static</artifactId>
            <version>${netty.boringssl.version}</version>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.reactivestreams</groupId>
            <artifactId>reactive-streams</artifactId>
            <version>${reactive-streams.version}</version>
<!--            <scope>provided</scope>-->
<!--            <optional>true</optional>-->
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>${servlet-api.version}</version>
<!--            <scope>provided</scope>-->
<!--            <optional>true</optional>-->
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>${spring-boot.version}</version>
            <scope>provided</scope>
            <optional>true</optional>
            <exclusions>
                <exclusion>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-starter-tomcat</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.hibernate.validator</groupId>
                    <artifactId>hibernate-validator</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-configuration-processor</artifactId>
            <version>${spring-boot.version}</version>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>javax.websocket</groupId>
            <artifactId>javax.websocket-api</artifactId>
            <version>${javax-websocket-api.version}</version>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
            <version>${spring-boot.version}</version>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>io.reactivex.rxjava3</groupId>
            <artifactId>rxjava</artifactId>
            <version>3.0.3</version>
            <scope>provided</scope>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <version>${spring-boot.version}</version>
            <scope>test</scope>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <version>${spring-boot.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.19</version>
            <scope>test</scope>
        </dependency>
        <!-- 测试mqtt用的,mqtt客户端-->
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-mqtt</artifactId>
            <version>3.9.0</version>
            <scope>test</scope>
        </dependency>

        <!-- 测试文件上传 -->
        <dependency>
            <groupId>commons-fileupload</groupId>
            <artifactId>commons-fileupload</artifactId>
            <version>1.4</version>
            <scope>test</scope>
        </dependency>

        <!--<dependency>-->
            <!--<groupId>io.moquette</groupId>-->
            <!--<artifactId>moquette-broker</artifactId>-->
            <!--<version>0.12</version>-->
        <!--</dependency>-->
        <!-- https://mvnrepository.com/artifact/io.dropwizard.metrics/metrics-jvm -->
        <!--<dependency>-->
            <!--<groupId>io.dropwizard.metrics</groupId>-->
            <!--<artifactId>metrics-jvm</artifactId>-->
            <!--<version>3.2.2</version>-->
        <!--</dependency>-->
        <!--&lt;!&ndash; https://mvnrepository.com/artifact/com.librato.metrics/metrics-librato &ndash;&gt;-->
        <!--<dependency>-->
            <!--<groupId>com.librato.metrics</groupId>-->
            <!--<artifactId>metrics-librato</artifactId>-->
            <!--<version>5.1.0</version>-->
        <!--</dependency>-->
        <!--<dependency>-->
            <!--<groupId>com.librato.metrics</groupId>-->
            <!--<artifactId>librato-java</artifactId>-->
            <!--<version>2.1.0</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
            <!--<groupId>io.protostuff</groupId>-->
            <!--<artifactId>protostuff-core</artifactId>-->
            <!--<version>${protostuff.version}</version>-->
        <!--</dependency>-->
        <!--<dependency>-->
            <!--<groupId>io.protostuff</groupId>-->
            <!--<artifactId>protostuff-runtime</artifactId>-->
            <!--<version>${protostuff.version}</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
            <!--<groupId>org.bytedeco</groupId>-->
            <!--<artifactId>javacv-platform</artifactId>-->
            <!--<version>1.3.3</version>-->
        <!--</dependency>-->
        <!-- https://mvnrepository.com/artifact/com.lmax/disruptor -->
        <!--<dependency>-->
            <!--<groupId>com.lmax</groupId>-->
            <!--<artifactId>disruptor</artifactId>-->
            <!--<version>3.4.2</version>-->
        <!--</dependency>-->

        <!-- Netty建议的反射依赖 -->
        <!--<dependency>-->
            <!--<groupId>org.javassist</groupId>-->
            <!--<artifactId>javassist</artifactId>-->
            <!--<version>3.19.0-GA</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-starter-jetty</artifactId>-->
        <!--<version>1.5.2.RELEASE</version>-->
        <!--</dependency>-->

        <!-- https://mvnrepository.com/artifact/io.grpc/grpc-netty -->
        <!--<dependency>-->
        <!--<groupId>io.grpc</groupId>-->
        <!--<artifactId>grpc-netty</artifactId>-->
        <!--<version>1.14.0</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
        <!--<groupId>io.netty</groupId>-->
        <!--<artifactId>netty-example</artifactId>-->
        <!--<version>${netty.version}</version>-->
        <!--<scope>compile</scope>-->
        <!--<optional>true</optional>-->
        <!--</dependency>-->

        <!--<dependency>-->
            <!--<groupId>org.t-io</groupId>-->
            <!--<artifactId>tio-core</artifactId>-->
            <!--<version>1.7.0.v20170501-RELEASE</version>-->
        <!--</dependency>-->
        <!--<dependency>-->
            <!--<groupId>org.t-io</groupId>-->
            <!--<artifactId>tio-websocket-server</artifactId>-->
            <!--<version>0.0.4-tio-websocket</version>-->
        <!--</dependency>-->

        <!--<dependency>-->
            <!--<groupId>org.springframework.boot</groupId>-->
            <!--<artifactId>spring-boot-starter-websocket</artifactId>-->
            <!--<version>1.5.10.RELEASE</version>-->
            <!--<scope>test</scope>-->
        <!--</dependency>-->

        <!-- https://mvnrepository.com/artifact/com.corundumstudio.socketio/netty-socketio -->
        <!--<dependency>-->
            <!--<groupId>com.corundumstudio.socketio</groupId>-->
            <!--<artifactId>netty-socketio</artifactId>-->
            <!--<version>1.7.16</version>-->
        <!--</dependency>-->
    </dependencies>

    <build>
<!--        <pluginManagement>-->
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.5.1</version>
                    <configuration>
                        <encoding>UTF-8</encoding>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.codehaus.plexus</groupId>
                            <artifactId>plexus-compiler-javac</artifactId>
                            <version>2.7</version>
                        </dependency>
                    </dependencies>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>3.0.1</version>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <attach>true</attach>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.2</version>
                    <executions>
                        <execution>
                            <id>attach-javadoc</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <show>public</show>
                        <charset>UTF-8</charset>
                        <encoding>UTF-8</encoding>
                        <docencoding>UTF-8</docencoding>
                        <links>
                            <link>http://docs.oracle.com/javase/8/docs/api</link>
                        </links>
                    </configuration>
                </plugin>

                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>1.6</version>
                    <executions>
                        <execution>
                            <id>sign-artifacts</id>
                            <phase>verify</phase>
                            <goals>
                                <goal>sign</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
            </plugins>
<!--        </pluginManagement>-->
    </build>

    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots</url>
        </snapshotRepository>
        <repository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
<!--        <repository>-->
<!--            <id>lechun-releases</id>-->
<!--            <name>releases repository</name>-->
<!--            <url>http://101.201.223.148:9099/nexus/content/repositories/releases</url>-->
<!--        </repository>-->
<!--        <snapshotRepository>-->
<!--            <id>lechun-snapshots</id>-->
<!--            <name>snapshots repository</name>-->
<!--            <url>http://101.201.223.148:9099/nexus/content/repositories/snapshots</url>-->
<!--        </snapshotRepository>-->
    </distributionManagement>

    <profiles>
        <profile>
            <id>release</id>
            <build>
                <pluginManagement>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>

                        <version>3.5.1</version>
                        <configuration>
                            <encoding>UTF-8</encoding>
                            <source>1.8</source>
                            <target>1.8</target>
                        </configuration>
                        <dependencies>
                            <dependency>
                                <groupId>org.codehaus.plexus</groupId>
                                <artifactId>plexus-compiler-javac</artifactId>
                                <version>2.7</version>
                            </dependency>
                        </dependencies>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>3.0.1</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <attach>true</attach>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>2.10.2</version>
                        <executions>
                            <execution>
                                <id>attach-javadoc</id>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <show>public</show>
                            <charset>UTF-8</charset>
                            <encoding>UTF-8</encoding>
                            <docencoding>UTF-8</docencoding>
                            <links>
                                <link>http://docs.oracle.com/javase/8/docs/api</link>
                            </links>
                        </configuration>
                    </plugin>

                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>1.6</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
                </pluginManagement>
            </build>
            <distributionManagement>
                <snapshotRepository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/content/repositories/snapshots</url>
                </snapshotRepository>
                <repository>
                    <id>ossrh</id>
                    <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
                </repository>
            </distributionManagement>
        </profile>
    </profiles>

    <!--mvn clean deploy -P release verify -Dgpg.passphrase=password-->
    <!--gpg &#45;&#45;keyserver hkp://keyserver.ubuntu.com:11371 &#45;&#45;send-keys DF6BD576-->
    <!--gpg &#45;&#45;keyserver hkp://pool.sks-keyservers.net &#45;&#45;send-keys A12DCF7DF1-->
    <!--JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8-->
</project>