<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>net.risesoft</groupId>
  <artifactId>y9-digitalbase-parent</artifactId>
  <version>9.6.10</version>
  <packaging>pom</packaging>
  <name>y9-digitalbase-parent</name>
  <description>RiseSoft/Digital Infrastructure Parent</description>
  <url>https://gitee.com/risesoft-y9/y9-core/tree/main/</url>
  <licenses>
    <license>
      <name>GNU General Public License (GPL) version 3.0</name>
      <url>https://www.gnu.org/licenses/gpl-3.0.en.html</url>
      <distribution>repo</distribution>
    </license>
  </licenses>
  <developers>
    <developer>
      <name>dingzhaojun</name>
      <email>dingzhaojun@risesoft.net</email>
      <organization>risesoft</organization>
      <organizationUrl>https://www.risesoft.net</organizationUrl>
    </developer>
    <developer>
      <name>qinman</name>
      <email>qinman@risesoft.net</email>
      <organization>risesoft</organization>
      <organizationUrl>https://www.risesoft.net</organizationUrl>
    </developer>
    <developer>
      <name>shidaobang</name>
      <email>shidaobang@risesoft.net</email>
      <organization>risesoft</organization>
      <organizationUrl>https://www.risesoft.net</organizationUrl>
    </developer>
  </developers>
  <scm>
    <connection>scm:git:https://gitee.com/risesoft-y9/y9-core.git</connection>
    <developerConnection>scm:git:https://gitee.com/risesoft-y9/y9-core.git</developerConnection>
    <url>https://gitee.com/risesoft-y9/y9-core</url>
  </scm>
  <properties>
    <central-publishing-maven-plugin.version>0.10.0</central-publishing-maven-plugin.version>
    <maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
    <gitee.connection>scm:git:https://gitee.com/risesoft-y9/y9-core.git</gitee.connection>
    <flatten-maven-plugin.version>1.7.0</flatten-maven-plugin.version>
    <gitee.developerConnection>scm:git:https://gitee.com/risesoft-y9/y9-core.git</gitee.developerConnection>
    <spring-cloud.version>2021.0.8</spring-cloud.version>
    <maven-javadoc-plugin.version>3.11.2</maven-javadoc-plugin.version>
    <smart-doc-maven-plugin.version>3.1.0</smart-doc-maven-plugin.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <maven-compiler-plugin.version>3.14.0</maven-compiler-plugin.version>
    <docker.registry>docker-internal.youshengyun.com</docker.registry>
    <jib-maven-plugin.version>3.4.5</jib-maven-plugin.version>
    <resource.delimiter>@</resource.delimiter>
    <docker.tag>${project.version}-${maven.build.timestamp}</docker.tag>
    <revision>9.6.10</revision>
    <maven-enforcer-plugin.version>3.5.0</maven-enforcer-plugin.version>
    <maven-war-plugin.version>3.4.0</maven-war-plugin.version>
    <maven-resources-plugin.version>3.3.1</maven-resources-plugin.version>
    <gitee.url>https://gitee.com/risesoft-y9/y9-core</gitee.url>
    <maven-release-plugin.version>3.1.1</maven-release-plugin.version>
    <maven-source-plugin.version>3.3.1</maven-source-plugin.version>
    <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
    <profile.dir>default</profile.dir>
    <spring-boot.version>2.7.18</spring-boot.version>
    <maven-dependency-plugin.version>3.8.1</maven-dependency-plugin.version>
    <cas.version>6.6.15.2</cas.version>
    <maven.build.timestamp.format>yyyyMMddHHmm</maven.build.timestamp.format>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <aspectj.version>1.9.20.1</aspectj.version>
    <maven-deploy-plugin.version>3.1.4</maven-deploy-plugin.version>
    <java.version>11</java.version>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <lombok.version>1.18.38</lombok.version>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <git-commit-id-maven-plugin.version>9.0.2</git-commit-id-maven-plugin.version>
    <aspectj-maven-plugin.version>1.14.1</aspectj-maven-plugin.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>net.risesoft</groupId>
        <artifactId>y9-digitalbase-bom</artifactId>
        <version>9.6.10</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>net.risesoft</groupId>
        <artifactId>y9-digitalbase-dependencies</artifactId>
        <version>9.6.10</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <repositories>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>central-snapshots</id>
      <url>https://central.sonatype.com/repository/maven-snapshots/</url>
    </repository>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>aliyun-repo</id>
      <url>https://maven.aliyun.com/repository/public</url>
    </repository>
    <repository>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>y9-internet-repo</id>
      <url>https://svn.youshengyun.com:9900/nexus/repository/maven-public/</url>
    </repository>
  </repositories>
  <pluginRepositories>
    <pluginRepository>
      <id>aliyun-repo-plugin</id>
      <url>https://maven.aliyun.com/repository/public</url>
    </pluginRepository>
    <pluginRepository>
      <id>y9-internet-repo-plugin</id>
      <url>https://svn.youshengyun.com:9900/nexus/repository/maven-public/</url>
    </pluginRepository>
  </pluginRepositories>
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <excludes>
          <exclude>profiles/*</exclude>
        </excludes>
      </resource>
      <resource>
        <directory>src/main/resources/profiles/${profile.dir}</directory>
      </resource>
    </resources>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-plugin.version}</version>
          <configuration>
            <annotationProcessorPaths>
              <path>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>${lombok.version}</version>
              </path>
              <path>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-configuration-processor</artifactId>
                <version>${spring-boot.version}</version>
              </path>
            </annotationProcessorPaths>
            <source>${java.version}</source>
            <target>${java.version}</target>
            <parameters>true</parameters>
            <compilerArgument>-Xlint:all</compilerArgument>
            <showWarnings>true</showWarnings>
            <showDeprecation>true</showDeprecation>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>${maven-war-plugin.version}</version>
          <configuration>
            <failOnMissingWebXml>false</failOnMissingWebXml>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${maven-deploy-plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${maven-resources-plugin.version}</version>
          <executions>
            <execution>
              <phase>process-resources</phase>
              <goals>
                <goal>copy-resources</goal>
              </goals>
              <configuration>
                <resources>
                  <resource>
                    <directory>src/main/resources/profiles/${profile.dir}</directory>
                    <filtering>true</filtering>
                  </resource>
                </resources>
                <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                <overwrite>true</overwrite>
              </configuration>
            </execution>
          </executions>
          <configuration>
            <delimiters>
              <delimiter>${resource.delimiter}</delimiter>
            </delimiters>
            <useDefaultDelimiters>false</useDefaultDelimiters>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven-javadoc-plugin.version}</version>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <charset>UTF-8</charset>
            <encoding>UTF-8</encoding>
            <docencoding>UTF-8</docencoding>
            <tags>
              <tag>
                <name>date</name>
              </tag>
            </tags>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-source-plugin</artifactId>
          <version>${maven-source-plugin.version}</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${maven-dependency-plugin.version}</version>
          <executions>
            <execution>
              <phase>package</phase>
              <goals>
                <goal>copy-dependencies</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <includeScope>runtime</includeScope>
          </configuration>
        </plugin>
        <plugin>
          <groupId>dev.aspectj</groupId>
          <artifactId>aspectj-maven-plugin</artifactId>
          <version>${aspectj-maven-plugin.version}</version>
          <executions>
            <execution>
              <id>weave-classes</id>
              <phase>process-classes</phase>
              <goals>
                <goal>compile</goal>
              </goals>
              <configuration>
                <sources />
                <weaveDirectories>
                  <weaveDirectory>${project.build.directory}/classes</weaveDirectory>
                </weaveDirectories>
              </configuration>
            </execution>
            <execution>
              <id>weave-test-classes</id>
              <phase>process-test-classes</phase>
              <goals>
                <goal>test-compile</goal>
              </goals>
              <configuration>
                <testSources />
                <weaveDirectories>
                  <weaveDirectory>${project.build.directory}/test-classes</weaveDirectory>
                </weaveDirectories>
              </configuration>
            </execution>
          </executions>
          <dependencies>
            <dependency>
              <groupId>org.aspectj</groupId>
              <artifactId>aspectjrt</artifactId>
              <version>${aspectj.version}</version>
            </dependency>
            <dependency>
              <groupId>org.aspectj</groupId>
              <artifactId>aspectjtools</artifactId>
              <version>${aspectj.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <verbose>true</verbose>
            <forceAjcCompile>true</forceAjcCompile>
            <aspectLibraries>
              <aspectLibrary>
                <groupId>org.springframework</groupId>
                <artifactId>spring-aspects</artifactId>
              </aspectLibrary>
            </aspectLibraries>
            <complianceLevel>${java.version}</complianceLevel>
            <source>${java.version}</source>
            <target>${java.version}</target>
            <encoding>UTF-8</encoding>
            <showWeaveInfo>true</showWeaveInfo>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-release-plugin</artifactId>
          <version>${maven-release-plugin.version}</version>
          <configuration>
            <useReleaseProfile>false</useReleaseProfile>
            <preparationGoals>clean install</preparationGoals>
            <goals>deploy</goals>
            <arguments>-Prelease,deploy</arguments>
            <autoVersionSubmodules>true</autoVersionSubmodules>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
          <version>${spring-boot.version}</version>
          <executions>
            <execution>
              <id>package</id>
              <goals>
                <goal>repackage</goal>
              </goals>
            </execution>
            <execution>
              <id>generate-resources</id>
              <goals>
                <goal>build-info</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>com.ly.smart-doc</groupId>
          <artifactId>smart-doc-maven-plugin</artifactId>
          <version>${smart-doc-maven-plugin.version}</version>
          <executions>
            <execution>
              <phase>compile</phase>
              <goals>
                <goal>html</goal>
                <goal>markdown</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <configFile>./src/main/resources/smart-doc.json</configFile>
            <excludes>
              <exclude>com.alibaba:fastjson</exclude>
            </excludes>
            <includes>
              <include>net.risesoft:risenet-y9boot-common-model</include>
            </includes>
          </configuration>
        </plugin>
        <plugin>
          <groupId>com.google.cloud.tools</groupId>
          <artifactId>jib-maven-plugin</artifactId>
          <version>${jib-maven-plugin.version}</version>
          <executions>
            <execution>
              <phase>package</phase>
              <goals>
                <goal>build</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <skip>false</skip>
            <from>
              <image>${docker.registry}/base/tomcat:9.0.107-jdk11-temurin</image>
              <platforms>
                <platform>
                  <architecture>amd64</architecture>
                  <os>linux</os>
                </platform>
                <platform>
                  <architecture>arm64</architecture>
                  <os>linux</os>
                </platform>
              </platforms>
            </from>
            <container>
              <appRoot>/usr/local/tomcat/webapps/${project.build.finalName}</appRoot>
            </container>
            <to>
              <image>${docker.registry}/main/${project.artifactId}</image>
              <tags>
                <tag>${project.version}</tag>
                <tag>9.6.x</tag>
                <tag>${docker.tag}</tag>
              </tags>
            </to>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>cn.smallbun.screw</groupId>
                    <artifactId>screw-maven-plugin</artifactId>
                    <versionRange>[1.0.5,)</versionRange>
                    <goals>
                      <goal>run</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>com.ly.smart-doc</groupId>
                    <artifactId>smart-doc-maven-plugin</artifactId>
                    <versionRange>[2.4.8,)</versionRange>
                    <goals>
                      <goal>html</goal>
                      <goal>docx</goal>
                      <goal>markdown</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>dev.aspectj</groupId>
                    <artifactId>aspectj-maven-plugin</artifactId>
                    <versionRange>[1,)</versionRange>
                    <goals>
                      <goal>compile</goal>
                      <goal>test-compile</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <versionRange>[1,)</versionRange>
                    <goals>
                      <goal>copy-dependencies</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <versionRange>[1,)</versionRange>
                    <goals>
                      <goal>enforce</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>flatten-maven-plugin</artifactId>
                    <versionRange>[1,)</versionRange>
                    <goals>
                      <goal>flatten</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                    <versionRange>[1,)</versionRange>
                    <goals>
                      <goal>build-info</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${maven-enforcer-plugin.version}</version>
          <executions>
            <execution>
              <id>enforce-versions</id>
              <phase>initialize</phase>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <rules>
                  <requireJavaVersion>
                    <version>${java.version}</version>
                  </requireJavaVersion>
                </rules>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>io.github.git-commit-id</groupId>
          <artifactId>git-commit-id-maven-plugin</artifactId>
          <version>${git-commit-id-maven-plugin.version}</version>
          <executions>
            <execution>
              <id>get-the-git-infos</id>
              <phase>initialize</phase>
              <goals>
                <goal>revision</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <dotGitDirectory>${project.basedir}/.git</dotGitDirectory>
            <failOnNoGitDirectory>false</failOnNoGitDirectory>
            <generateGitPropertiesFile>true</generateGitPropertiesFile>
            <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
            <commitIdGenerationMode>full</commitIdGenerationMode>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>io.github.git-commit-id</groupId>
        <artifactId>git-commit-id-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>flatten-maven-plugin</artifactId>
        <version>${flatten-maven-plugin.version}</version>
        <executions>
          <execution>
            <id>flatten</id>
            <phase>process-resources</phase>
            <goals>
              <goal>flatten</goal>
            </goals>
            <configuration>
              <updatePomFile>true</updatePomFile>
              <flattenMode>resolveCiFriendliesOnly</flattenMode>
              <pomElements>
                <scm>expand</scm>
                <url>expand</url>
                <developers>expand</developers>
              </pomElements>
            </configuration>
          </execution>
          <execution>
            <id>flatten.clean</id>
            <phase>clean</phase>
            <goals>
              <goal>clean</goal>
            </goals>
          </execution>
        </executions>
        <inherited>true</inherited>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>env-local</id>
      <activation />
      <properties>
        <profile.dir>local</profile.dir>
      </properties>
    </profile>
    <profile>
      <id>env-test</id>
      <activation />
      <properties>
        <profile.dir>test</profile.dir>
      </properties>
    </profile>
    <profile>
      <id>env-prod</id>
      <activation />
      <properties>
        <docker.registry>docker.youshengyun.com</docker.registry>
        <profile.dir>prod</profile.dir>
      </properties>
    </profile>
    <profile>
      <id>env-demo</id>
      <activation />
      <properties>
        <profile.dir>demo</profile.dir>
      </properties>
    </profile>
    <profile>
      <id>deploy-private-repo</id>
      <activation />
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
      <distributionManagement>
        <repository>
          <id>releases</id>
          <url>https://svn.youshengyun.com:9900/nexus/repository/maven-releases/</url>
        </repository>
        <snapshotRepository>
          <id>snapshots</id>
          <url>https://svn.youshengyun.com:9900/nexus/repository/maven-snapshots/</url>
        </snapshotRepository>
      </distributionManagement>
    </profile>
    <profile>
      <id>deploy-maven-central</id>
      <activation />
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>${maven-gpg-plugin.version}</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.sonatype.central</groupId>
            <artifactId>central-publishing-maven-plugin</artifactId>
            <version>${central-publishing-maven-plugin.version}</version>
            <extensions>true</extensions>
            <configuration>
              <publishingServerId>mvn-central</publishingServerId>
              <centralBaseUrl>https://central.sonatype.com</centralBaseUrl>
              <deploymentName>${project.artifactId}-${project.version}</deploymentName>
              <skipPublishing>false</skipPublishing>
              <autoPublish>true</autoPublish>
              <waitUntil>uploaded</waitUntil>
              <checksums>required</checksums>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>javadoc</id>
      <activation />
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-javadoc-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
