<?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>

  <packaging>pom</packaging>

  <groupId>top.csaf</groupId>
  <artifactId>zutil-parent</artifactId>
  <version>2.0.0-beta4</version>
  <name>${project.artifactId}</name>
  <url>https://github.com/duanluan/zutil</url>
  <description>Java Util</description>
  <licenses>
    <license>
      <name>Apache License 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>
  <issueManagement>
    <system>GitHub Issues</system>
    <url>https://github.com/duanluan/zutil/issues</url>
  </issueManagement>
  <!-- 开发者：https://central.sonatype.org/publish/requirements/#developer-information -->
  <developers>
    <developer>
      <name>duanluan</name>
      <email>duanluan@outlook.com</email>
      <organization>计算机科学与艺术基金会（CSAF）</organization>
      <organizationUrl>https://github.com/csa-f</organizationUrl>
      <timezone>+8</timezone>
    </developer>
  </developers>
  <!-- SCM：https://central.sonatype.org/publish/requirements/#scm-information -->
  <scm>
    <url>https://github.com/duanluan/zutil/tree/main</url>
    <connection>scm:git:git://github.com/duanluan/zutil.git</connection>
    <developerConnection>scm:git:ssh://github.com:duanluan/zutil.git</developerConnection>
  </scm>

  <modules>
    <module>zutil-all</module>
    <module>zutil-core</module>
    <module>zutil-regex</module>
    <module>zutil-io</module>
    <module>zutil-json</module>
    <module>zutil-http</module>
    <module>zutil-pinyin</module>
    <module>zutil-date</module>
    <module>zutil-img</module>
    <module>zutil-awt</module>
    <module>zutil-id</module>
  </modules>

  <properties>
    <java.version>1.8</java.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <serverId>central</serverId>

    <maven.compiler.plugin.version>3.14.1</maven.compiler.plugin.version>
    <maven.surefire.plugin.version>3.5.4</maven.surefire.plugin.version>
    <jacoco.plugin.version>0.8.14</jacoco.plugin.version>
    <maven.source.plugin.version>3.4.0</maven.source.plugin.version>
    <maven.javadoc.plugin.version>3.12.0</maven.javadoc.plugin.version>
    <maven.gpg.plugin.version>3.2.8</maven.gpg.plugin.version>
    <central.publishing.plugin.version>0.9.0</central.publishing.plugin.version>

    <lombok.version>1.18.42</lombok.version>
    <slf4j.version>2.0.17</slf4j.version>
    <gson.version>2.13.2</gson.version>
    <jackson.version>2.20.1</jackson.version>
    <fastjson.version>2.0.60</fastjson.version>
    <commons.lang.version>3.20.0</commons.lang.version>
    <commons.text.version>1.15.0</commons.text.version>
    <commons.collections.version>4.5.0</commons.collections.version>
    <commons.io.version>2.21.0</commons.io.version>
    <commons.compress.version>1.28.0</commons.compress.version>
    <junrar.version>7.5.7</junrar.version>
    <commons.beanutils.version>1.11.0</commons.beanutils.version>
    <xz.version>1.10</xz.version>
    <okhttps.version>4.1.0</okhttps.version>
    <okio.version>3.16.4</okio.version>
    <spring.beans.version>7.0.2</spring.beans.version>
    <bouncycastle.version>1.83</bouncycastle.version>
    <commons.codec.version>1.20.0</commons.codec.version>
    <dom4j.version>2.2.0</dom4j.version>
    <snakeyaml.version>2.5</snakeyaml.version>
    <batik.version>1.19</batik.version>
    <thumbnailator.version>0.4.21</thumbnailator.version>
    <transmittable.thread.local.version>2.14.5</transmittable.thread.local.version>
    <resilience4j.version>1.7.1</resilience4j.version>
    <ulid.creator.version>5.2.3</ulid.creator.version>
    <uuid.creator.version>6.1.1</uuid.creator.version>
    <ip2region.version>2.7.0</ip2region.version>

    <junit.version>6.1.0-M1</junit.version>
    <junit.platform.version>6.1.0-M1</junit.platform.version>
    <spring.test.version>7.0.2</spring.test.version>
    <jmh.version>1.37</jmh.version>
    <hutool.version>5.8.42</hutool.version>
    <jsoup.version>1.21.2</jsoup.version>
    <mockwebserver.version>3.14.9</mockwebserver.version>
    <tinypinyin.version>2.0.3.RELEASE</tinypinyin.version>
    <kryo.version>5.6.2</kryo.version>
    <fst.version>3.0.4-jdk17</fst.version>
    <wicketstuff.serializer.version>10.7.0</wicketstuff.serializer.version>
    <hessian.version>4.0.66</hessian.version>
    <protostuff.version>1.8.0</protostuff.version>
    <dyuproject.protostuff.version>1.4.0</dyuproject.protostuff.version>
    <objenesis.version>3.4</objenesis.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lombok.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>${fastjson.version}</version>
      </dependency>
      <dependency>
        <groupId>com.alibaba.fastjson2</groupId>
        <artifactId>fastjson2</artifactId>
        <version>${fastjson.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons.lang.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>${commons.text.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>${commons.collections.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons.io.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>${commons.compress.version}</version>
      </dependency>
      <dependency>
        <groupId>com.github.junrar</groupId>
        <artifactId>junrar</artifactId>
        <version>${junrar.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>${commons.beanutils.version}</version>
      </dependency>
      <dependency>
        <groupId>org.tukaani</groupId>
        <artifactId>xz</artifactId>
        <version>${xz.version}</version>
      </dependency>
      <dependency>
        <groupId>cn.zhxu</groupId>
        <artifactId>okhttps</artifactId>
        <version>${okhttps.version}</version>
      </dependency>
      <dependency>
        <groupId>com.squareup.okio</groupId>
        <artifactId>okio</artifactId>
        <version>${okio.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-beans</artifactId>
        <version>${spring.beans.version}</version>
      </dependency>
      <dependency>
        <groupId>org.bouncycastle</groupId>
        <artifactId>bcprov-jdk18on</artifactId>
        <version>${bouncycastle.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>${commons.codec.version}</version>
      </dependency>
      <dependency>
        <groupId>org.dom4j</groupId>
        <artifactId>dom4j</artifactId>
        <version>${dom4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.yaml</groupId>
        <artifactId>snakeyaml</artifactId>
        <version>${snakeyaml.version}</version>
      </dependency>
      <!-- Batik SVG transcoder -->
      <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-transcoder</artifactId>
        <version>${batik.version}</version>
      </dependency>
      <!-- Batik image codecs -->
      <dependency>
        <groupId>org.apache.xmlgraphics</groupId>
        <artifactId>batik-codec</artifactId>
        <version>${batik.version}</version>
      </dependency>
      <!-- Thumbnailator - a thumbnail generation library for Java -->
      <dependency>
        <groupId>net.coobird</groupId>
        <artifactId>thumbnailator</artifactId>
        <version>${thumbnailator.version}</version>
      </dependency>
      <!-- The missing Java™ std lib(simple & 0-dependency) for framework/middleware, provide an enhanced InheritableThreadLocal that transmits values between threads even using thread pooling components. -->
      <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>transmittable-thread-local</artifactId>
        <version>${transmittable.thread.local.version}</version>
      </dependency>
      <dependency>
        <groupId>io.github.resilience4j</groupId>
        <artifactId>resilience4j-retry</artifactId>
        <version>${resilience4j.version}</version>
      </dependency>
      <!-- A Java library for generating ULIDs (Universally Unique Lexicographically Sortable Identifier). -->
      <dependency>
        <groupId>com.github.f4b6a3</groupId>
        <artifactId>ulid-creator</artifactId>
        <version>${ulid.creator.version}</version>
      </dependency>
      <!-- A Java library to generate RFC-4122 Universally Unique Identifiers (UUID). -->
      <dependency>
        <groupId>com.github.f4b6a3</groupId>
        <artifactId>uuid-creator</artifactId>
        <version>${uuid.creator.version}</version>
      </dependency>
      <dependency>
        <groupId>org.lionsoul</groupId>
        <artifactId>ip2region</artifactId>
        <version>${ip2region.version}</version>
      </dependency>


      <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.junit.platform</groupId>
        <artifactId>junit-platform-suite</artifactId>
        <version>${junit.platform.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-test</artifactId>
        <version>${spring.test.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.openjdk.jmh</groupId>
        <artifactId>jmh-core</artifactId>
        <version>${jmh.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.openjdk.jmh</groupId>
        <artifactId>jmh-generator-annprocess</artifactId>
        <version>${jmh.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>mockwebserver</artifactId>
        <version>${mockwebserver.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>${hutool.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>${jsoup.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.github.biezhi</groupId>
        <artifactId>TinyPinyin</artifactId>
        <version>${tinypinyin.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.esotericsoftware</groupId>
        <artifactId>kryo</artifactId>
        <version>${kryo.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.wicketstuff</groupId>
        <artifactId>wicketstuff-serializer-fast2</artifactId>
        <version>${wicketstuff.serializer.version}</version>
        <scope>test</scope>
        <exclusions>
          <exclusion>
            <groupId>de.ruedigermoeller</groupId>
            <artifactId>fst</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>de.ruedigermoeller</groupId>
        <artifactId>fst</artifactId>
        <version>${fst.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.caucho</groupId>
        <artifactId>hessian</artifactId>
        <version>${hessian.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.protostuff</groupId>
        <artifactId>protostuff-core</artifactId>
        <version>${protostuff.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>io.protostuff</groupId>
        <artifactId>protostuff-runtime</artifactId>
        <version>${protostuff.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.dyuproject.protostuff</groupId>
        <artifactId>protostuff-core</artifactId>
        <version>${dyuproject.protostuff.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.dyuproject.protostuff</groupId>
        <artifactId>protostuff-runtime</artifactId>
        <version>${dyuproject.protostuff.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.objenesis</groupId>
        <artifactId>objenesis</artifactId>
        <version>${objenesis.version}</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <dependencies>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-simple</artifactId>
    </dependency>

    <!-- JUnit：https://junit.org/junit5/docs/current/api/index.html -->
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- JUnit 测试套件 -->
    <dependency>
      <groupId>org.junit.platform</groupId>
      <artifactId>junit-platform-suite</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- Spring Test，此处主要用于调用 private 方法用于覆盖率测试 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <scope>test</scope>
    </dependency>
    <!-- JMH -->
    <dependency>
      <groupId>org.openjdk.jmh</groupId>
      <artifactId>jmh-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.openjdk.jmh</groupId>
      <artifactId>jmh-generator-annprocess</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
    <pluginManagement>
      <plugins>
        <!-- Apache Maven Compiler Plugin：配置 compiler:compile、compiler:testCompile https://maven.apache.org/plugins/maven-compiler-plugin/index.html -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven.compiler.plugin.version}</version>
          <!-- compiler:compile https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html -->
          <configuration>
            <!-- Setting the -source and -target of the Java Compiler https://maven.apache.org/plugins/maven-compiler-plugin/examples/set-compiler-source-and-target.html -->
            <!-- Java 编译器的 -source 参数 https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#source -->
            <source>${java.version}</source>
            <!-- Java 编译器的 -target 参数 https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#target -->
            <target>${java.version}</target>
            <!-- 显示编译警告 https://maven.apache.org/plugins/maven-compiler-plugin/compile-mojo.html#showWarnings -->
            <showWarnings>true</showWarnings>
          </configuration>
        </plugin>
        <!-- Apache Maven Surefire Plugin：配置 test 生命周期阶段 https://maven.apache.org/surefire/maven-surefire-plugin/ -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven.surefire.plugin.version}</version>
          <!-- surefire:test https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html -->
          <configuration>
            <!-- 忽略测试失败 https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#testFailureIgnore -->
            <testFailureIgnore>true</testFailureIgnore>
            <!-- 需排除的测试 https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#excludes -->
            <excludes>
              <!-- JMH 性能测试 -->
              <exclude>**/jmh/**</exclude>
            </excludes>
            <!-- 传递 JaCoCo 代理参数，在测试执行期间收集代码覆盖率数据 -->
            <argLine>${jacocoArgLine}</argLine>
            <!-- 跳过测试 -->
            <!--<skipTests>true</skipTests>-->
          </configuration>
        </plugin>

        <!--
          JaCoCo https://www.eclemma.org/jacoco/trunk/doc/maven.html
          如果想在覆盖率报告中显示行号，或者突出显示源代码，必须 debug 编译
          使用 maven-surefire-plugin 或 maven-fails-plugin 时，不能将 forkCount 设置为 0 或将 forkMode 设置为 never，因为这将阻止运行测试的 -javaagent 参数，导致无法记录覆盖率
        -->
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco.plugin.version}</version>
          <configuration>
            <!-- 指定包含 JaCoCo 代理的属性名 https://www.eclemma.org/jacoco/trunk/doc/prepare-agent-mojo.html#propertyName -->
            <!-- 使用 maven-surefire-plugin 时会覆盖 VM 参数，所以需要取名并配置到 maven-surefire-plugin 的 argLine 中 -->
            <propertyName>jacocoArgLine</propertyName>
          </configuration>
          <executions>
            <execution>
              <id>jacoco-initialize</id>
              <goals>
                <!-- 默认生命周期阶段为 initialize。修改 JVM 参数，注入 JaCoCo 代理（agent），在测试执行期间收集代码覆盖率数据。https://www.eclemma.org/jacoco/trunk/doc/prepare-agent-mojo.html -->
                <goal>prepare-agent</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <!-- Javadoc and Sources Attachments - The Central Repository Documentation https://central.sonatype.org/publish/publish-maven/#javadoc-and-sources-attachments -->
        <!-- Apache Maven Source Plugin：创建源码 jar https://maven.apache.org/plugins/maven-source-plugin/ -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>${maven.source.plugin.version}</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <goals>
                <!-- 默认生命周期阶段为 package。其他插件绑定到它的生命周期阶段时，用 jar 会重复打包，jar-no-fork 可以避免 https://stackoverflow.com/a/10568004 -->
                <!-- https://maven.apache.org/plugins/maven-source-plugin/jar-no-fork-mojo.html -->
                <goal>jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <!-- Maven Javadoc Plugin：生成 Javadoc https://maven.apache.org/plugins/maven-javadoc-plugin/ -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven.javadoc.plugin.version}</version>
          <configuration>
            <!-- 关闭 doclint，避免因为 Javadoc 格式问题导致构建失败 https://maven.apache.org/plugins/maven-javadoc-plugin/javadoc-mojo.html#doclint -->
            <doclint>none</doclint>
          </configuration>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <goals>
                <!-- 默认生命周期阶段为 package。用于创建 Javadoc jar https://maven.apache.org/plugins/maven-javadoc-plugin/jar-mojo.html -->
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
        </plugin>

        <!-- GPG Signed Components - The Central Repository Documentation https://central.sonatype.org/publish/publish-maven/#gpg-signed-components -->
        <!-- Apache Maven GPG Plugin：使用 GPG 对项目 Artifacts（发行版文件）进行签名 https://maven.apache.org/plugins/maven-gpg-plugin/ -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>${maven.gpg.plugin.version}</version>
          <executions>
            <execution>
              <id>sign-artifacts</id>
              <goals>
                <!-- 签名项目 Artifact、POM、附加 artifacts（源码、Javadoc、本地 jar 等） https://maven.apache.org/plugins/maven-gpg-plugin/sign-mojo.html -->
                <goal>sign</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <!--&lt;!&ndash; 旧平台 Nexus Staging Maven Plugin for Deployment and Release - The Central Repository Documentation https://central.sonatype.org/publish/publish-maven/#nexus-staging-maven-plugin-for-deployment-and-release &ndash;&gt;-->
        <!--&lt;!&ndash; Nexus Staging Maven Plugin：Nexus 流程 https://github.com/sonatype/nexus-maven-plugins/tree/main/staging/maven-plugin &ndash;&gt;-->
        <!--<plugin>-->
        <!--  <groupId>org.sonatype.plugins</groupId>-->
        <!--  <artifactId>nexus-staging-maven-plugin</artifactId>-->
        <!--  <version>1.6.13</version>-->
        <!--  <extensions>true</extensions>-->
        <!--  <configuration>-->
        <!--    &lt;!&ndash; Maven setting.xml 中 <server> 的 ID，用于获取身份验证信息 https://github.com/sonatype/nexus-maven-plugins/tree/main/staging/maven-plugin#configuring-the-plugin &ndash;&gt;-->
        <!--    <serverId>ossrh</serverId>-->
        <!--    &lt;!&ndash; 目标 Nexus URL &ndash;&gt;-->
        <!--    <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>-->
        <!--    &lt;!&ndash; deploy、close、rc-close 执行成功后自动 release &ndash;&gt;-->
        <!--    <autoReleaseAfterClose>true</autoReleaseAfterClose>-->
        <!--  </configuration>-->
        <!--</plugin>-->
        <!-- 新平台 Publishing By Using the Maven Plugin：https://central.sonatype.org/publish/publish-portal-maven/ -->
        <plugin>
          <groupId>org.sonatype.central</groupId>
          <artifactId>central-publishing-maven-plugin</artifactId>
          <version>${central.publishing.plugin.version}</version>
          <extensions>true</extensions>
          <configuration>
            <publishingServerId>central</publishingServerId>
            <tokenAuth>true</tokenAuth>
            <!-- 不发布指定模块 -->
            <!--<excludeArtifacts></excludeArtifacts>-->
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-gpg-plugin</artifactId>
      </plugin>
      <!--<plugin>-->
      <!--  <groupId>org.sonatype.plugins</groupId>-->
      <!--  <artifactId>nexus-staging-maven-plugin</artifactId>-->
      <!--</plugin>-->
      <plugin>
        <groupId>org.sonatype.central</groupId>
        <artifactId>central-publishing-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

  <!-- id 和 settings.xml 中设置用户名、密码的保持一致 -->
  <distributionManagement>
    <!--<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>-->
    <snapshotRepository>
      <id>central</id>
      <url>https://central.sonatype.com/</url>
    </snapshotRepository>
  </distributionManagement>

  <repositories>
    <!--<repository>-->
    <!--  <id>huaweicloud</id>-->
    <!--  <url>https://repo.huaweicloud.com/repository/maven/</url>-->
    <!--</repository>-->
    <!--<repository>-->
    <!--  <id>aliyunmaven</id>-->
    <!--  <url>https://maven.aliyun.com/repository/public</url>-->
    <!--</repository>-->
    <repository>
      <id>maven_central</id>
      <name>Maven Central</name>
      <url>https://repo.maven.apache.org/maven2/</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>huaweicloud</id>
      <url>https://repo.huaweicloud.com/repository/maven/</url>
    </pluginRepository>
    <pluginRepository>
      <id>aliyunmaven</id>
      <url>https://maven.aliyun.com/repository/public</url>
    </pluginRepository>
    <pluginRepository>
      <id>maven_central</id>
      <url>https://repo.maven.apache.org/maven2/</url>
    </pluginRepository>
  </pluginRepositories>
</project>
