<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>cn.fossc.polaris.framework</groupId>
	<artifactId>polaris-framework</artifactId>
	<version>3.0.33</version>
	<packaging>pom</packaging>

	<name>polaris-framework</name>
	<url>https://www.fossc.cn</url>
	<description>fossc</description>
	<organization>
		<name>fossc</name>
		<url>https://www.fossc.cn</url>
	</organization>
	<modules>
		<module>polaris-framework-starters</module>
		<module>polaris-framework-modules</module>
		<module>polaris-framework-builder</module>
		<module>polaris-framework-boot</module>
	</modules>

	<properties>
		<deploymentName>cn.fossc.polaris.framework:polaris-framework:${project.version}</deploymentName>
		<project.polaris-framework.revision>3.0.33</project.polaris-framework.revision>

		<start-class></start-class>
		<java.version>1.8</java.version>
		<file.encoding>UTF-8</file.encoding>
		<resource.delimiter>@</resource.delimiter>
		<!--<resource.delimiter>#{*}</resource.delimiter>-->
		<project.build.sourceEncoding>${file.encoding}</project.build.sourceEncoding>
		<project.reporting.outputEncoding>${file.encoding}</project.reporting.outputEncoding>
		<project.dependencies.scope.provided>provided</project.dependencies.scope.provided>
		<project.sourceDirectory>src/main/java</project.sourceDirectory>
		<project.profiles.dir>src/profiles</project.profiles.dir>
		<project.activeProfile>dev</project.activeProfile>
		<project.resources.profile>${project.profiles.dir}/${project.activeProfile}/resources</project.resources.profile>
		<project.resources.ext>src/ext/resources</project.resources.ext>
		<project.resources.addition>src/main/config</project.resources.addition>
		<project.testResources.addition>src/test/config</project.testResources.addition>

		<lombok.sourceDirectory>src/main/lombok</lombok.sourceDirectory>
		<lombok.outputDirectory>${project.build.directory}/generated-sources/delombok</lombok.outputDirectory>

		<maven.test.skip>false</maven.test.skip>
		<maven.install.skip>false</maven.install.skip>
		<maven.deploy.skip>false</maven.deploy.skip>
		<skipTests>true</skipTests>
		<package.dependencyDirectory>libs</package.dependencyDirectory>
		<includeScope>runtime</includeScope>
		<maven.clean.failOnError>false</maven.clean.failOnError>
		<maven.compiler.source>${java.version}</maven.compiler.source>
		<maven.compiler.target>${java.version}</maven.compiler.target>
		<maven.compiler.failOnError>true</maven.compiler.failOnError>
		<maven.compiler.fork>false</maven.compiler.fork>
		<maven.compiler.verbose>false</maven.compiler.verbose>
		<maven.compiler.failOnWarning>false</maven.compiler.failOnWarning>
		<maven.compiler.useIncrementalCompilation>false</maven.compiler.useIncrementalCompilation>
		<assembly.appendAssemblyId>true</assembly.appendAssemblyId>
		<assembly.skipAssembly>false</assembly.skipAssembly>
		<groups>important | fast | light</groups>
		<excludedGroups>local,slow,heavy</excludedGroups>
		<checkstyle.skip>true</checkstyle.skip>
		<findbugs.skip>true</findbugs.skip>
		<pmd.skip>true</pmd.skip>

		<maven.jetty.version>9.2.2.v20140723</maven.jetty.version>
		<maven.tomcat.version>2.2</maven.tomcat.version>

		<maven.lombok.version>1.18.32</maven.lombok.version>
		<maven.groovy.version>2.5.22</maven.groovy.version>

		<dependency.polaris-plugins.version>3.2.0</dependency.polaris-plugins.version>
		<dependency.polaris-toolkit.version>3.2.35</dependency.polaris-toolkit.version>
		<!--<dependency.spring-boot.version>2.3.10.RELEASE</dependency.spring-boot.version>-->
		<!--<dependency.spring-cloud.version>Hoxton.SR10</dependency.spring-cloud.version>-->
		<dependency.spring-boot.version>2.3.12.RELEASE</dependency.spring-boot.version>
		<dependency.spring-cloud.version>Hoxton.SR12</dependency.spring-cloud.version>
		<!--<dependency.spring-cloud-alibaba.version>2.2.10</dependency.spring-cloud-alibaba.version>-->
		<dependency.spring-cloud-alibaba.version>2.2.9.RELEASE</dependency.spring-cloud-alibaba.version>

		<dependency.log4j2.version>2.23.0</dependency.log4j2.version>
		<dependency.slf4j.version>1.7.36</dependency.slf4j.version>
		<!--<dependency.slf4j.version>2.0.5</dependency.slf4j.version>-->
		<dependency.disruptor.version>3.4.4</dependency.disruptor.version>
		<dependency.junit-jupiter.version>5.9.1</dependency.junit-jupiter.version>
		<dependency.junit.version>4.13.2</dependency.junit.version>
		<dependency.h2.version>2.2.220</dependency.h2.version>
		<dependency.hsqldb.version>2.7.1</dependency.hsqldb.version>
		<dependency.powermock.version>2.0.7</dependency.powermock.version>
		<dependency.mockito.version>3.5.13</dependency.mockito.version>
		<dependency.jmh.version>1.21</dependency.jmh.version>

		<dependency.bytebuddy.version>1.12.23</dependency.bytebuddy.version>
		<dependency.asm.version>9.4</dependency.asm.version>
		<dependency.javassist.version>3.29.2-GA</dependency.javassist.version>
		<dependency.reflectasm.version>1.11.9</dependency.reflectasm.version>
		<dependency.javapoet.version>1.13.0</dependency.javapoet.version>
		<dependency.mybatis-spring.version>2.1.4</dependency.mybatis-spring.version>
		<dependency.jackson.version>2.14.2</dependency.jackson.version>
		<dependency.fastjson2.version>2.0.53</dependency.fastjson2.version>

		<dependency.dropwizard-metrics.version>4.1.7</dependency.dropwizard-metrics.version>
		<dependency.swagger-v3.version>2.2.9</dependency.swagger-v3.version>
		<dependency.pagehelper.version>5.3.2</dependency.pagehelper.version>
		<dependency.elastic-job.version>2.1.7</dependency.elastic-job.version>
		<dependency.mybatis.version>3.5.7</dependency.mybatis.version>
		<dependency.zookeeper.version>3.4.6</dependency.zookeeper.version>
		<dependency.curator.version>4.2.0</dependency.curator.version>
		<dependency.netty.version>4.1.107.Final</dependency.netty.version>
		<dependency.okhttp.version>4.12.0</dependency.okhttp.version>
	</properties>

	<dependencies>
		<!-- region BuildTools -->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
		<dependency>
			<groupId>org.codehaus.groovy</groupId>
			<artifactId>groovy-all</artifactId>
			<type>pom</type>
			<scope>provided</scope>
		</dependency>
		<!-- endregion BuildTools -->

		<!-- region polaris-toolkit -->
		<dependency>
			<groupId>cn.fossc.polaris.toolkit</groupId>
			<artifactId>polaris-logging</artifactId>
			<type>pom</type>
		</dependency>
		<dependency>
			<groupId>cn.fossc.polaris.toolkit</groupId>
			<artifactId>polaris-core</artifactId>
		</dependency>
		<dependency>
			<groupId>cn.fossc.polaris.toolkit</groupId>
			<artifactId>polaris-all</artifactId>
			<type>pom</type>
		</dependency>
		<!-- endregion polaris-toolkit -->

		<!-- region spring-boot -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-autoconfigure-processor</artifactId>
			<optional>true</optional>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-configuration-processor</artifactId>
			<optional>true</optional>
		</dependency>
		<!-- endregion spring-boot -->

		<!-- region TestFramework -->
		<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>org.hsqldb</groupId>
			<artifactId>hsqldb</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>com.h2database</groupId>
			<artifactId>h2</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.junit.jupiter</groupId>
			<artifactId>junit-jupiter-api</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-inline</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-junit-jupiter</artifactId>
			<scope>test</scope>
		</dependency>
		<!-- endregion -->
	</dependencies>

	<dependencyManagement>
		<dependencies>
			<!-- region modules -->
			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>polaris-framework-module-core</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>polaris-framework-module-redis</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>polaris-framework-module-dubbo</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>polaris-framework-module-http</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>polaris-framework-module-nacos</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>polaris-framework-module-infra</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>polaris-framework-module-mq</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>

			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>polaris-framework-builder</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>

			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>basic-framework-spring-boot-starter</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>mybatix-spring-boot-starter</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>config-spring-cloud-starter</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.polaris.framework</groupId>
				<artifactId>toolkit-spring-boot-starter</artifactId>
				<version>${project.polaris-framework.revision}</version>
			</dependency>

			<!-- endregion modules -->

			<!-- region BuildTools -->
			<dependency>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok</artifactId>
				<version>${maven.lombok.version}</version>
				<scope>provided</scope>
				<optional>true</optional>
			</dependency>
			<dependency>
				<groupId>org.codehaus.groovy</groupId>
				<artifactId>groovy-all</artifactId>
				<version>${maven.groovy.version}</version>
				<type>pom</type>
				<exclusions>
					<exclusion>
						<artifactId>groovy-test-junit5</artifactId>
						<groupId>org.codehaus.groovy</groupId>
					</exclusion>
					<exclusion>
						<artifactId>groovy-test</artifactId>
						<groupId>org.codehaus.groovy</groupId>
					</exclusion>
				</exclusions>
			</dependency>
			<!-- endregion BuildTools -->

			<!-- region log -->
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-bom</artifactId>
				<version>${dependency.log4j2.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>com.lmax</groupId>
				<artifactId>disruptor</artifactId>
				<version>${dependency.disruptor.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${dependency.slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jcl-over-slf4j</artifactId>
				<version>${dependency.slf4j.version}</version>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>jul-to-slf4j</artifactId>
				<version>${dependency.slf4j.version}</version>
			</dependency>
			<!-- endregion log -->

			<!-- region TestFramework -->
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-simple</artifactId>
				<version>${dependency.slf4j.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.openjdk.jmh</groupId>
				<artifactId>jmh-core</artifactId>
				<version>${dependency.jmh.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.openjdk.jmh</groupId>
				<artifactId>jmh-generator-annprocess</artifactId>
				<version>${dependency.jmh.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.junit</groupId>
				<artifactId>junit-bom</artifactId>
				<version>${dependency.junit-jupiter.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<scope>test</scope>
				<version>${dependency.junit.version}</version>
			</dependency>
			<dependency>
				<groupId>org.powermock</groupId>
				<artifactId>powermock-module-junit4</artifactId>
				<version>${dependency.powermock.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.powermock</groupId>
				<artifactId>powermock-api-mockito2</artifactId>
				<version>${dependency.powermock.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-core</artifactId>
				<scope>test</scope>
				<version>${dependency.mockito.version}</version>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-inline</artifactId>
				<version>${dependency.mockito.version}</version>
			</dependency>
			<dependency>
				<groupId>org.mockito</groupId>
				<artifactId>mockito-junit-jupiter</artifactId>
				<version>${dependency.mockito.version}</version>
			</dependency>
			<!-- endregion -->

			<!-- region bytecode -->
			<dependency>
				<groupId>com.esotericsoftware</groupId>
				<artifactId>reflectasm</artifactId>
				<version>${dependency.reflectasm.version}</version>
			</dependency>
			<dependency>
				<groupId>org.javassist</groupId>
				<artifactId>javassist</artifactId>
				<version>${dependency.javassist.version}</version>
			</dependency>
			<dependency>
				<groupId>net.bytebuddy</groupId>
				<artifactId>byte-buddy</artifactId>
				<version>${dependency.bytebuddy.version}</version>
			</dependency>
			<dependency>
				<groupId>net.bytebuddy</groupId>
				<artifactId>byte-buddy-agent</artifactId>
				<version>${dependency.bytebuddy.version}</version>
			</dependency>
			<dependency>
				<groupId>com.squareup</groupId>
				<artifactId>javapoet</artifactId>
				<version>${dependency.javapoet.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ow2.asm</groupId>
				<artifactId>asm</artifactId>
				<version>${dependency.asm.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ow2.asm</groupId>
				<artifactId>asm-commons</artifactId>
				<version>${dependency.asm.version}</version>
			</dependency>
			<dependency>
				<groupId>org.ow2.asm</groupId>
				<artifactId>asm-util</artifactId>
				<version>${dependency.asm.version}</version>
			</dependency>
			<!-- endregion bytecode -->

			<!-- region json/yaml -->
			<dependency>
				<groupId>com.fasterxml.jackson</groupId>
				<artifactId>jackson-bom</artifactId>
				<version>${dependency.jackson.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>com.alibaba.fastjson2</groupId>
				<artifactId>fastjson2</artifactId>
				<version>${dependency.fastjson2.version}</version>
			</dependency>
			<dependency>
				<groupId>com.google.code.gson</groupId>
				<artifactId>gson</artifactId>
				<version>2.8.9</version>
			</dependency>
			<dependency>
				<groupId>org.yaml</groupId>
				<artifactId>snakeyaml</artifactId>
				<version>1.31</version>
			</dependency>
			<!-- endregion json -->

			<!-- region metrics -->
			<dependency>
				<groupId>io.dropwizard.metrics</groupId>
				<artifactId>metrics-core</artifactId>
				<version>${dependency.dropwizard-metrics.version}</version>
			</dependency>
			<dependency>
				<groupId>io.dropwizard.metrics</groupId>
				<artifactId>metrics-jvm</artifactId>
				<version>${dependency.dropwizard-metrics.version}</version>
			</dependency>
			<dependency>
				<groupId>io.dropwizard.metrics</groupId>
				<artifactId>metrics-healthchecks</artifactId>
				<version>${dependency.dropwizard-metrics.version}</version>
			</dependency>
			<dependency>
				<groupId>io.dropwizard.metrics</groupId>
				<artifactId>metrics-json</artifactId>
				<version>${dependency.dropwizard-metrics.version}</version>
			</dependency>
			<!-- endregion metrics-->

			<!-- region swagger -->
			<dependency>
				<groupId>io.swagger.core.v3</groupId>
				<artifactId>swagger-core</artifactId>
				<version>${dependency.swagger-v3.version}</version>
			</dependency>
			<dependency>
				<groupId>io.swagger.core.v3</groupId>
				<artifactId>swagger-annotations</artifactId>
				<version>${dependency.swagger-v3.version}</version>
			</dependency>
			<dependency>
				<groupId>io.swagger.core.v3</groupId>
				<artifactId>swagger-models</artifactId>
				<version>${dependency.swagger-v3.version}</version>
			</dependency>
			<!-- endregion swagger -->

			<!-- region jedis -->
			<dependency>
				<groupId>redis.clients</groupId>
				<artifactId>jedis</artifactId>
				<version>3.8.0</version>
				<exclusions>
					<exclusion>
						<groupId>org.slf4j</groupId>
						<artifactId>slf4j-api</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.apache.commons</groupId>
				<artifactId>commons-pool2</artifactId>
				<version>2.11.1</version>
			</dependency>
			<!-- endregion jedis -->

			<!-- region jdbc -->
			<dependency>
				<groupId>org.hsqldb</groupId>
				<artifactId>hsqldb</artifactId>
				<version>${dependency.hsqldb.version}</version>
			</dependency>
			<dependency>
				<groupId>com.h2database</groupId>
				<artifactId>h2</artifactId>
				<version>${dependency.h2.version}</version>
			</dependency>
			<dependency>
				<groupId>mysql</groupId>
				<artifactId>mysql-connector-java</artifactId>
				<version>5.1.49</version>
			</dependency>
			<dependency>
				<groupId>org.postgresql</groupId>
				<artifactId>postgresql</artifactId>
				<version>42.2.23.jre7</version>
			</dependency>
			<dependency>
				<groupId>com.clickhouse</groupId>
				<artifactId>clickhouse-jdbc</artifactId>
				<version>0.4.6</version>
			</dependency>
			<dependency>
				<groupId>com.oracle.database.jdbc</groupId>
				<artifactId>ojdbc8</artifactId>
				<version>19.3.0.0</version>
			</dependency>
			<dependency>
				<groupId>com.oracle.database.nls</groupId>
				<artifactId>orai18n</artifactId>
				<version>19.3.0.0</version>
			</dependency>
			<dependency>
				<groupId>org.xerial</groupId>
				<artifactId>sqlite-jdbc</artifactId>
				<version>3.36.0.1</version>
				<scope>compile</scope>
			</dependency>
			<dependency>
				<groupId>org.apache.derby</groupId>
				<artifactId>derby</artifactId>
				<version>10.14.2.0</version>
				<scope>compile</scope>
			</dependency>
			<dependency>
				<groupId>org.apache.derby</groupId>
				<artifactId>derbytools</artifactId>
				<version>10.14.2.0</version>
				<scope>compile</scope>
			</dependency>
			<dependency>
				<groupId>com.microsoft.sqlserver</groupId>
				<artifactId>sqljdbc4</artifactId>
				<version>4.0</version>
			</dependency>
			<dependency>
				<groupId>com.alibaba</groupId>
				<artifactId>druid-spring-boot-starter</artifactId>
				<version>1.2.8</version>
			</dependency>
			<!-- endregion jdbc -->

			<!-- region page helper -->
			<dependency>
				<groupId>com.github.pagehelper</groupId>
				<artifactId>pagehelper</artifactId>
				<version>${dependency.pagehelper.version}</version>
			</dependency>
			<!-- endregion page helper -->

			<!-- region validation-->
			<dependency>
				<groupId>org.hibernate.validator</groupId>
				<artifactId>hibernate-validator</artifactId>
				<version>6.2.5.Final</version>
			</dependency>
			<dependency>
				<groupId>org.hibernate.validator</groupId>
				<artifactId>hibernate-validator-annotation-processor</artifactId>
				<version>6.2.5.Final</version>
			</dependency>
			<!-- endregion validation-->

			<!-- region zookeeper -->
			<dependency>
				<groupId>org.apache.zookeeper</groupId>
				<artifactId>zookeeper</artifactId>
				<version>${dependency.zookeeper.version}</version>
				<exclusions>
					<exclusion>
						<artifactId>log4j</artifactId>
						<groupId>log4j</groupId>
					</exclusion>
					<exclusion>
						<artifactId>slf4j-log4j12</artifactId>
						<groupId>org.slf4j</groupId>
					</exclusion>
					<exclusion>
						<artifactId>slf4j-api</artifactId>
						<groupId>org.slf4j</groupId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.apache.curator</groupId>
				<artifactId>curator-framework</artifactId>
				<version>${dependency.curator.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.curator</groupId>
				<artifactId>curator-client</artifactId>
				<version>${dependency.curator.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.curator</groupId>
				<artifactId>curator-x-discovery</artifactId>
				<version>${dependency.curator.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.curator</groupId>
				<artifactId>curator-x-async</artifactId>
				<version>${dependency.curator.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.curator</groupId>
				<artifactId>curator-recipes</artifactId>
				<version>${dependency.curator.version}</version>
			</dependency>
			<dependency>
				<groupId>org.apache.curator</groupId>
				<artifactId>curator-test</artifactId>
				<version>${dependency.curator.version}</version>
			</dependency>
			<!-- endregion -->

			<!-- region job -->
			<dependency>
				<groupId>cn.fossc.com.dangdang</groupId>
				<artifactId>elastic-job-lite-core</artifactId>
				<version>${dependency.elastic-job.version}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.com.dangdang</groupId>
				<artifactId>elastic-job-lite-spring</artifactId>
				<version>${dependency.elastic-job.version}</version>
			</dependency>
			<dependency>
				<groupId>cn.fossc.com.dangdang</groupId>
				<artifactId>elastic-job-lite-lifecycle</artifactId>
				<version>${dependency.elastic-job.version}</version>
				<exclusions>
					<exclusion>
						<groupId>cn.fossc.com.dangdang</groupId>
						<artifactId>elastic-job-common-restful</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>cn.fossc.com.dangdang</groupId>
				<artifactId>elastic-job-common-restful</artifactId>
				<version>${dependency.elastic-job.version}</version>
			</dependency>
			<!-- endregion job -->

			<!-- region okhttp -->
			<dependency>
				<groupId>com.squareup.okhttp3</groupId>
				<artifactId>okhttp</artifactId>
				<version>${dependency.okhttp.version}</version>
			</dependency>
			<!-- endregion -->

			<!-- region netty -->
			<dependency>
				<groupId>io.netty</groupId>
				<artifactId>netty-bom</artifactId>
				<version>${dependency.netty.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!-- endregion -->

			<!-- region springframework-->
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>${dependency.spring-boot.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${dependency.spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>com.alibaba.cloud</groupId>
				<artifactId>spring-cloud-alibaba-dependencies</artifactId>
				<version>${dependency.spring-cloud-alibaba.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<!-- endregion springframework -->

			<!-- region polaris -->
			<dependency>
				<groupId>cn.fossc.polaris.toolkit</groupId>
				<artifactId>polaris-toolkit</artifactId>
				<type>pom</type>
				<version>${dependency.polaris-toolkit.version}</version>
				<scope>import</scope>
			</dependency>
			<!-- endregion polaris -->

			<!-- region mybatis -->
			<dependency>
				<groupId>org.mybatis.spring.boot</groupId>
				<artifactId>mybatis-spring-boot-starter</artifactId>
				<!-- mybatis-5.x之后会使用Statement.closeOnCompletion方法，在oracle等驱动包中未实现会报错 -->
				<!--<version>2.3.1</version>-->
				<version>${dependency.mybatis-spring.version}</version>
			</dependency>
			<!-- endregion mybatis -->
		</dependencies>
	</dependencyManagement>

	<build>
		<defaultGoal>install</defaultGoal>
		<finalName>${project.artifactId}-${project.version}</finalName>
		<sourceDirectory>${project.sourceDirectory}</sourceDirectory>
		<resources>
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*</include>
				</includes>
				<excludes>
					<exclude>**/*.java</exclude>
					<exclude>README.md</exclude>
				</excludes>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>**/*</include>
				</includes>
				<excludes>
					<exclude>README.md</exclude>
					<exclude>.gitkeep*</exclude>
					<exclude>**/*.yml</exclude>
					<exclude>**/*.yaml</exclude>
					<exclude>**/*.properties</exclude>
					<exclude>*.xml</exclude>
				</excludes>
				<filtering>false</filtering>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
				<includes>
					<include>**/*.yml</include>
					<include>**/*.yaml</include>
					<include>**/*.properties</include>
					<include>*.xml</include>
				</includes>
				<filtering>true</filtering>
			</resource>
			<resource>
				<directory>${project.resources.addition}</directory>
				<includes>
					<include>**/*</include>
				</includes>
			</resource>
		</resources>
		<testResources>
			<testResource>
				<directory>src/test/java</directory>
				<includes>
					<include>**/*</include>
				</includes>
				<excludes>
					<exclude>**/*.java</exclude>
					<exclude>README.md</exclude>
					<exclude>.gitkeep*</exclude>
				</excludes>
			</testResource>
			<testResource>
				<directory>src/test/resources</directory>
				<includes>
					<include>**/*</include>
				</includes>
				<excludes>
					<exclude>README.md</exclude>
					<exclude>.gitkeep*</exclude>
					<exclude>**/*.yml</exclude>
					<exclude>**/*.yaml</exclude>
					<exclude>**/*.properties</exclude>
					<exclude>*.xml</exclude>
				</excludes>
				<filtering>false</filtering>
			</testResource>
			<testResource>
				<directory>src/test/resources</directory>
				<includes>
					<include>**/*.yml</include>
					<include>**/*.yaml</include>
					<include>**/*.properties</include>
					<include>*.xml</include>
				</includes>
				<filtering>true</filtering>
			</testResource>
			<testResource>
				<directory>${project.testResources.addition}</directory>
				<includes>
					<include>**/*</include>
				</includes>
			</testResource>
		</testResources>

		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-help-plugin</artifactId>
					<version>3.2.0</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>versions-maven-plugin</artifactId>
					<version>2.8.1</version>
				</plugin>
				<!-- mvn -N io.takari:maven:wrapper -Dmaven=3.9.5 -->
				<plugin>
					<groupId>io.takari</groupId>
					<artifactId>maven</artifactId>
					<version>0.6.1</version>
				</plugin>
				<!-- mvn wrapper:wrapper -DmavenVersion=x -->
				<!--<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-wrapper-plugin</artifactId>
					<version>3.0.2</version>
				</plugin>-->
				<!--<plugin>
					<groupId>com.rimerosolutions.maven.plugins</groupId>
					<artifactId>wrapper-maven-plugin</artifactId>
					<version>0.0.5</version>
				</plugin>-->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>flatten-maven-plugin</artifactId>
					<version>1.2.5</version>
					<configuration>
						<!-- oss,ossrh,bom,defaults,clean,fatjar,resolveCiFriendliesOnly -->
						<flattenMode>resolveCiFriendliesOnly</flattenMode>
						<updatePomFile>true</updatePomFile>
						<outputDirectory>${project.build.directory}</outputDirectory>
						<flattenedPomFilename>.flattened-pom.xml</flattenedPomFilename>
					</configuration>
					<executions>
						<execution>
							<id>flatten</id>
							<phase>process-resources</phase>
							<goals>
								<goal>flatten</goal>
							</goals>
						</execution>
						<execution>
							<id>flatten.clean</id>
							<phase>clean</phase>
							<goals>
								<goal>clean</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.flywaydb</groupId>
					<artifactId>flyway-maven-plugin</artifactId>
					<version>6.4.4</version>
				</plugin>
				<plugin>
					<groupId>pl.project13.maven</groupId>
					<artifactId>git-commit-id-plugin</artifactId>
					<version>3.0.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.johnzon</groupId>
					<artifactId>johnzon-maven-plugin</artifactId>
					<version>1.2.8</version>
				</plugin>
				<plugin>
					<groupId>org.jooq</groupId>
					<artifactId>jooq-codegen-maven</artifactId>
					<version>3.13.5</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>xml-maven-plugin</artifactId>
					<version>1.0.2</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-eclipse-plugin</artifactId>
					<version>2.10</version>
					<configuration>
						<addGroupIdToProjectName>true</addGroupIdToProjectName>
						<downloadSources>true</downloadSources>
						<downloadJavadocs>true</downloadJavadocs>
						<additionalProjectnatures>
							<projectnature>org.eclipse.jdt.groovy.core.groovyNature</projectnature>
						</additionalProjectnatures>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.eclipse.jetty</groupId>
					<artifactId>jetty-maven-plugin</artifactId>
					<version>${maven.jetty.version}</version>
					<configuration>
						<reload>manual</reload>
						<stopPort>9009</stopPort>
						<httpConnector>
							<port>9001</port>
						</httpConnector>
						<webAppConfig>
							<contextPath>/</contextPath>
						</webAppConfig>
						<systemProperties>
							<systemProperty>
								<name>spring.profiles.active</name>
								<value>dev</value>
							</systemProperty>
						</systemProperties>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.tomcat.maven</groupId>
					<artifactId>tomcat7-maven-plugin</artifactId>
					<version>${maven.tomcat.version}</version>
					<configuration>
						<port>9001</port>
						<path>/</path>
						<uriEncoding>${project.build.sourceEncoding}</uriEncoding>
						<systemProperties>
							<systemProperty>
								<name>spring.profiles.active</name>
								<value>dev</value>
							</systemProperty>
						</systemProperties>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>3.1.0</version>
					<configuration>
						<failOnError>${maven.clean.failOnError}</failOnError>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>build-helper-maven-plugin</artifactId>
					<version>3.2.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<!--<version>3.8.1</version>-->
					<version>3.11.0</version>
					<configuration>
						<source>${maven.compiler.source}</source>
						<target>${maven.compiler.target}</target>
						<encoding>${project.build.sourceEncoding}</encoding>
						<parameters>true</parameters>
						<fork>${maven.compiler.fork}</fork>
						<verbose>${maven.compiler.verbose}</verbose>
						<failOnWarning>${maven.compiler.failOnWarning}</failOnWarning>
						<failOnError>${maven.compiler.failOnError}</failOnError>
						<useIncrementalCompilation>${maven.compiler.useIncrementalCompilation}</useIncrementalCompilation>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.projectlombok</groupId>
					<artifactId>lombok-maven-plugin</artifactId>
					<version>1.18.20.0</version>
					<!-- 注： 1.18.20.0版本尚不支持`lombok.accessors.capitalization=BEANSPEC`配置 -->
					<configuration>
						<encoding>${project.build.sourceEncoding}</encoding>
						<sourceDirectory>${lombok.sourceDirectory}</sourceDirectory>
						<outputDirectory>${lombok.outputDirectory}</outputDirectory>
						<formatPreferences>
							<pretty/>
						</formatPreferences>
					</configuration>
					<executions>
						<execution>
							<id>generate-sources</id>
							<phase>generate-sources</phase>
							<goals>
								<goal>delombok</goal>
							</goals>
						</execution>
						<!--<execution>
							<id>generate-test-sources</id>
							<phase>generate-test-sources</phase>
							<goals>
								<goal>testDelombok</goal>
							</goals>
						</execution>-->
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.1.0</version>
					<configuration>
						<encoding>${project.build.sourceEncoding}</encoding>
						<overwrite>true</overwrite>
						<useDefaultDelimiters>false</useDefaultDelimiters>
						<delimiters>
							<!-- $保留为系统或环境变量使用 -->
							<!--<delimiter>${*}</delimiter>-->
							<delimiter>${resource.delimiter}</delimiter>
						</delimiters>
					</configuration>
					<executions>
						<execution>
							<id>copy-resources</id>
							<phase>process-resources</phase>
							<goals>
								<goal>copy-resources</goal>
							</goals>
							<configuration>
								<overwrite>true</overwrite>
								<outputDirectory>${project.build.outputDirectory}</outputDirectory>
								<resources>
									<resource>
										<directory>${project.resources.profile}</directory>
									</resource>
								</resources>
							</configuration>
						</execution>
						<execution>
							<id>copy-ext</id>
							<!-- 针对Processor注解配置, 打包前加入,否则会自循环失败 -->
							<phase>prepare-package</phase>
							<goals>
								<goal>copy-resources</goal>
							</goals>
							<configuration>
								<overwrite>true</overwrite>
								<outputDirectory>${project.build.outputDirectory}</outputDirectory>
								<resources>
									<resource>
										<directory>${project.resources.ext}</directory>
									</resource>
								</resources>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>3.2.1</version>
					<configuration>
						<attach>true</attach>
					</configuration>
					<executions>
						<execution>
							<id>attach-sources</id>
							<phase>package</phase>
							<goals>
								<goal>jar-no-fork</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<version>3.5.0</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>3.2.0</version>
					<configuration>
						<skipIfEmpty>false</skipIfEmpty>
						<excludes>
							<exclude>rebel.xml</exclude>
							<exclude>.gitkeep*</exclude>
						</excludes>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>3.1.2</version>
					<configuration>
						<outputDirectory>${project.build.directory}/${package.dependencyDirectory}</outputDirectory>
						<overWriteReleases>false</overWriteReleases>
						<overWriteSnapshots>false</overWriteSnapshots>
						<overWriteIfNewer>true</overWriteIfNewer>
						<!-- 表示是否不包含间接依赖的包 -->
						<excludeTransitive>false</excludeTransitive>
						<!-- 表示复制的jar文件去掉版本信息 -->
						<stripVersion>false</stripVersion>
						<!-- 表示是否建立依赖包的maven风格的目录结构 -->
						<useRepositoryLayout>false</useRepositoryLayout>
						<prependGroupId>true</prependGroupId>
						<includeScope>${includeScope}</includeScope>
					</configuration>
					<!--<executions>
						<execution>
							<id>copy</id>
							<phase>package</phase>
							<goals>
								<goal>copy-dependencies</goal>
							</goals>
						</execution>
					</executions>-->
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>3.5.0</version>
					<configuration>
						<!--<additionalparam>-Xdoclint:none</additionalparam>-->
						<doclint>none</doclint>
						<encoding>${project.build.sourceEncoding}</encoding>
						<charset>${project.reporting.outputEncoding}</charset>
						<docencoding>${project.reporting.outputEncoding}</docencoding>
					</configuration>
					<executions>
						<execution>
							<id>javadoc-site-jar</id>
							<phase>site</phase>
							<goals>
								<goal>aggregate-jar</goal>
							</goals>
						</execution>
						<execution>
							<id>javadoc-site</id>
							<phase>site</phase>
							<goals>
								<goal>aggregate</goal>
							</goals>
						</execution>
						<execution>
							<id>javadoc-site-test</id>
							<phase>site</phase>
							<goals>
								<goal>test-aggregate</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<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>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-install-plugin</artifactId>
					<version>2.5.2</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>2.8.2</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-war-plugin</artifactId>
					<version>3.2.3</version>
					<configuration>
						<archive>
							<manifest>
								<mainClass>${start-class}</mainClass>
								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							</manifest>
						</archive>
						<!--<warName>${project.artifactId}</warName>-->
						<warName>${project.build.finalName}</warName>
						<failOnMissingWebXml>false</failOnMissingWebXml>
						<packagingExcludes>
							**/rebel.xml,
							**/.gitkeep
						</packagingExcludes>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>3.1.1</version>
					<configuration>
						<appendAssemblyId>${assembly.appendAssemblyId}</appendAssemblyId>
						<skipAssembly>${assembly.skipAssembly}</skipAssembly>
						<archive>
							<manifest>
								<mainClass>${start-class}</mainClass>
							</manifest>
						</archive>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>native2ascii-maven-plugin</artifactId>
					<version>2.1.0</version>
					<executions>
						<execution>
							<id>native2ascii-resources</id>
							<phase>process-resources</phase>
							<goals>
								<goal>resources</goal>
							</goals>
							<configuration>
								<encoding>${project.build.sourceEncoding}</encoding>
								<includes>
									<include>**/*.properties</include>
								</includes>
							</configuration>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>cn.fossc.polaris.plugins</groupId>
					<artifactId>properties-maven-plugin</artifactId>
					<version>${dependency.polaris-plugins.version}</version>
					<executions>
						<execution>
							<id>transform-resources</id>
							<goals>
								<goal>transform</goal>
							</goals>
							<phase>process-resources</phase>
						</execution>
						<execution>
							<id>transform-test-resources</id>
							<goals>
								<goal>transform</goal>
							</goals>
							<phase>process-test-resources</phase>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>3.0.0-M3</version>
					<executions>
						<execution>
							<id>enforce-versions</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<fail>false</fail>
								<rules>
									<requireJavaVersion>
										<version>${maven.compiler.source}</version>
									</requireJavaVersion>
								</rules>
							</configuration>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>3.1.2</version>
					<configuration>
						<groups>${groups}</groups>
						<excludedGroups>${excludedGroups}</excludedGroups>
						<includes>
							<include>**/Test*.java</include>
							<include>**/*Test.java</include>
							<include>**/*Tests.java</include>
							<include>**/*TestCase.java</include>
						</includes>
					</configuration>
					<dependencies>
						<dependency>
							<groupId>org.junit.jupiter</groupId>
							<artifactId>junit-jupiter-engine</artifactId>
							<version>${dependency.junit-jupiter.version}</version>
						</dependency>
						<dependency>
							<groupId>org.junit.vintage</groupId>
							<artifactId>junit-vintage-engine</artifactId>
							<version>${dependency.junit-jupiter.version}</version>
						</dependency>
					</dependencies>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>cobertura-maven-plugin</artifactId>
					<version>2.7</version>
					<configuration>
						<!--<format>xml</format>-->
						<format>html</format>
						<quiet>true</quiet>
					</configuration>
					<executions>
						<execution>
							<phase>test</phase>
							<goals>
								<goal>cobertura</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<plugin>
					<groupId>org.jetbrains.kotlin</groupId>
					<artifactId>kotlin-maven-plugin</artifactId>
					<version>1.3.72</version>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>exec-maven-plugin</artifactId>
					<version>3.2.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-antrun-plugin</artifactId>
					<version>3.0.0</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-failsafe-plugin</artifactId>
					<version>2.22.2</version>
					<configuration>
						<includes>
							<include>**/IT*.java</include>
							<include>**/*IT.java</include>
							<include>**/*ITCase.java</include>
						</includes>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>integration-test</goal>
								<goal>verify</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-invoker-plugin</artifactId>
					<version>3.2.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-site-plugin</artifactId>
					<version>3.4</version>
					<configuration>
						<locales>zh_CN,en</locales>
						<outputDirectory>${project.build.directory}/site</outputDirectory>
						<outputEncoding>${project.build.sourceEncoding}</outputEncoding>
						<inputEncoding>${project.build.sourceEncoding}</inputEncoding>
						<port>9999</port>
					</configuration>
				</plugin>

				<plugin>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-maven-plugin</artifactId>
					<version>${dependency.spring-boot.version}</version>
					<configuration>
						<fork>true</fork>
						<classifier>boot</classifier>
						<mainClass>${start-class}</mainClass>
					</configuration>
					<executions>
						<execution>
							<id>springboot-package</id>
							<goals>
								<goal>repackage</goal>
							</goals>
						</execution>
					</executions>
				</plugin>

				<!-- region check -->
				<!-- findbugs 静态分析工具 -->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>findbugs-maven-plugin</artifactId>
					<version>3.0.5</version>
					<configuration>
						<skip>${findbugs.skip}</skip>
						<failOnError>false</failOnError>
						<xmlOutput>true</xmlOutput>
						<findbugsXmlOutput>true</findbugsXmlOutput>
					</configuration>
					<executions>
						<execution>
							<phase>compile</phase>
							<goals>
								<goal>findbugs</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<!-- 代码风格检查 -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>3.1.2</version>
					<configuration>
						<skip>${checkstyle.skip}</skip>
						<failsOnError>true</failsOnError>
						<failOnViolation>true</failOnViolation>
						<logViolationsToConsole>true</logViolationsToConsole>
						<encoding>${project.build.sourceEncoding}</encoding>
						<consoleOutput>true</consoleOutput>
						<configLocation>checkstyle/checkstyle.xml</configLocation>
					</configuration>
					<dependencies>
						<dependency>
							<groupId>cn.fossc.polaris.plugins</groupId>
							<artifactId>polaris-build-tools</artifactId>
							<version>${dependency.polaris-plugins.version}</version>
						</dependency>
					</dependencies>
					<executions>
						<execution>
							<phase>validate</phase>
							<goals>
								<goal>checkstyle</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<!-- pmd Java程序代码检查工具 -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-pmd-plugin</artifactId>
					<version>3.8</version>
					<configuration>
						<skip>${pmd.skip}</skip>
						<failOnViolation>false</failOnViolation>
						<printFailingErrors>true</printFailingErrors>
						<rulesets>
							<ruleset>rulesets/java/ali-comment.xml</ruleset>
							<ruleset>rulesets/java/ali-concurrent.xml</ruleset>
							<ruleset>rulesets/java/ali-constant.xml</ruleset>
							<ruleset>rulesets/java/ali-exception.xml</ruleset>
							<ruleset>rulesets/java/ali-flowcontrol.xml</ruleset>
							<ruleset>rulesets/java/ali-naming.xml</ruleset>
							<ruleset>rulesets/java/ali-oop.xml</ruleset>
							<ruleset>rulesets/java/ali-orm.xml</ruleset>
							<ruleset>rulesets/java/ali-other.xml</ruleset>
							<ruleset>rulesets/java/ali-set.xml</ruleset>
						</rulesets>
					</configuration>
					<dependencies>
						<dependency>
							<!-- 需要使用阿里的一些xml文件，因此需要这里增加p3c的依赖 -->
							<groupId>com.alibaba.p3c</groupId>
							<artifactId>p3c-pmd</artifactId>
							<version>1.3.0</version>
						</dependency>
					</dependencies>
				</plugin>
				<!-- endregion-->
			</plugins>
		</pluginManagement>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-help-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>versions-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>io.takari</groupId>
				<artifactId>maven</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-eclipse-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.eclipse.jetty</groupId>
				<artifactId>jetty-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.tomcat.maven</groupId>
				<artifactId>tomcat7-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-clean-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.projectlombok</groupId>
				<artifactId>lombok-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-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-jar-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-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-install-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>cn.fossc.polaris.plugins</groupId>
				<artifactId>properties-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-failsafe-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-site-plugin</artifactId>
			</plugin>
			<!-- region check -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
			</plugin>
			<!-- endregion -->
		</plugins>
	</build>

	<reporting>
		<excludeDefaults>true</excludeDefaults>
		<outputDirectory>${project.build.directory}/site/${project.artifactId}</outputDirectory>
		<plugins>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-pmd-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
				<configuration>
					<check>
						<branchRate>85</branchRate>
						<lineRate>85</lineRate>
						<haltOnFailure>true</haltOnFailure>
						<totalBranchRate>85</totalBranchRate>
						<totalLineRate>85</totalLineRate>
						<packageLineRate>85</packageLineRate>
						<packageBranchRate>85</packageBranchRate>
						<regexes>
							<regex>
								<pattern>todo.*</pattern>
								<branchRate>90</branchRate>
								<lineRate>80</lineRate>
							</regex>
						</regexes>
					</check>
					<instrumentation>
						<ignores>
							<ignore>todo.*</ignore>
						</ignores>
						<excludes>
							<exclude>todo/**/*.class</exclude>
						</excludes>
					</instrumentation>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<reportSets>
					<reportSet><!-- by default, id = "default" -->
						<reports><!-- select non-aggregate reports -->
							<report>javadoc</report>
							<report>test-javadoc</report>
						</reports>
					</reportSet>
					<reportSet><!-- aggregate reportSet, to define in poms having modules -->
						<id>aggregate</id>
						<inherited>false</inherited><!-- don't run aggregate in child modules -->
						<reports>
							<report>aggregate</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>

			<!-- 项目信息过滤 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>2.6</version>
				<reportSets>
					<reportSet>
						<reports>
							<!-- index一定要生成,否则链接问题 -->
							<report>index</report>
							<report>dependencies</report>
							<report>project-team</report>
							<report>issue-tracking</report>
							<report>license</report>
							<report>scm</report>
							<report>cim</report>
							<report>modules</report>
							<report>plugins</report>
							<report>help</report>
							<report>summary</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
			<!-- 单元测试 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			<!-- 源码查看生成 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
				<version>3.0.0</version>
				<configuration>
				</configuration>
			</plugin>
			<!-- taglist报表 生成标注上@todo或TODO的项目的列表 -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>taglist-maven-plugin</artifactId>
				<version>2.4</version>
			</plugin>
		</plugins>
	</reporting>

	<developers>
		<developer>
			<name>Qt</name>
			<email>kylinmania@163.com</email>
			<url>https://www.fossc.cn/</url>
			<roles>
				<role>software engineer</role>
			</roles>
			<timezone>8</timezone>
		</developer>
	</developers>

	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0</url>
		</license>
	</licenses>

	<ciManagement>
		<system>continuum</system>
		<url>http://www.fossc.cn</url>
		<notifiers>
			<notifier>
				<type>mail</type>
				<sendOnError>true</sendOnError>
				<sendOnFailure>true</sendOnFailure>
				<sendOnSuccess>true</sendOnSuccess>
				<sendOnWarning>false</sendOnWarning>
				<configuration>
					<address>kylinmania@163.com</address>
				</configuration>
			</notifier>
		</notifiers>
	</ciManagement>

	<issueManagement>
		<system>issue</system>
		<url>http://www.fossc.cn</url>
	</issueManagement>

	<distributionManagement>
		<site>
			<id>local</id>
			<name>filesystem</name>
			<url>file:${project.basedir}/site</url>
		</site>
		<repository>
			<id>me</id>
			<name>me</name>
			<url>http://localhost:8081/repository/maven-releases/</url>
		</repository>
		<snapshotRepository>
			<id>me</id>
			<name>me</name>
			<url>http://localhost:8081/repository/maven-snapshots/</url>
		</snapshotRepository>
	</distributionManagement>

	<scm>
		<connection>scm:git:git@github.com:pivoto/polaris.git</connection>
		<developerConnection>scm:git:git@github.com:pivoto/polaris.git</developerConnection>
		<url>git@github.com:pivoto/polaris.git</url>
	</scm>

	<profiles>
		<!-- region delombok -->
		<profile>
			<id>delombok</id>
			<properties>
				<lombok.sourceDirectory>src/main/java</lombok.sourceDirectory>
				<lombok.outputDirectory>${project.build.directory}/generated-sources/delombok-java</lombok.outputDirectory>
				<project.sourceDirectory>${project.build.directory}/generated-sources/delombok-java</project.sourceDirectory>
			</properties>
		</profile>
		<!-- endregion -->

		<!-- region development -->
		<profile>
			<id>dev</id>
			<properties>
				<maven.test.skip>false</maven.test.skip>
				<skipTests>true</skipTests>
				<project.activeProfile>dev</project.activeProfile>
			</properties>
		</profile>
		<!-- endregion -->
		<!-- region Unit Testing -->
		<profile>
			<id>sut</id>
			<properties>
				<maven.test.skip>false</maven.test.skip>
				<skipTests>false</skipTests>
				<project.activeProfile>sut</project.activeProfile>
			</properties>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>cobertura-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
		<!-- endregion -->
		<!-- region Integration Testing -->
		<profile>
			<id>sit</id>
			<properties>
				<maven.test.skip>false</maven.test.skip>
				<skipTests>true</skipTests>
				<project.activeProfile>sit</project.activeProfile>
			</properties>
		</profile>
		<!-- endregion -->
		<!-- region User  Testing -->
		<profile>
			<id>uat</id>
			<properties>
				<maven.test.skip>false</maven.test.skip>
				<skipTests>true</skipTests>
				<project.activeProfile>uat</project.activeProfile>
			</properties>
		</profile>
		<!-- endregion -->
		<!-- region prepared/quasi production -->
		<profile>
			<id>pre</id>
			<properties>
				<maven.test.skip>true</maven.test.skip>
				<skipTests>true</skipTests>
				<project.activeProfile>pre</project.activeProfile>
			</properties>
		</profile>
		<!-- endregion -->
		<!-- region production -->
		<profile>
			<id>pro</id>
			<properties>
				<maven.test.skip>true</maven.test.skip>
				<skipTests>true</skipTests>
				<project.activeProfile>pro</project.activeProfile>
			</properties>
		</profile>
		<!-- endregion -->
		<!-- region withGroovy -->
		<profile>
			<id>withGroovy</id>
			<activation>
				<file>
					<exists>src/main/groovy</exists>
				</file>
			</activation>
			<dependencies>
				<dependency>
					<groupId>org.codehaus.groovy</groupId>
					<artifactId>groovy-all</artifactId>
					<type>pom</type>
				</dependency>
			</dependencies>
			<build>
				<resources>
					<resource>
						<directory>src/main/groovy</directory>
						<includes>
							<include>**/*</include>
						</includes>
						<excludes>
							<exclude>**/*.groovy</exclude>
							<exclude>README.md</exclude>
							<exclude>.gitkeep*</exclude>
						</excludes>
					</resource>
				</resources>
				<testResources>
					<testResource>
						<directory>src/test/groovy</directory>
						<includes>
							<include>**/*</include>
						</includes>
						<excludes>
							<exclude>**/*.groovy</exclude>
							<exclude>README.md</exclude>
							<exclude>.gitkeep*</exclude>
						</excludes>
					</testResource>
				</testResources>
				<plugins>
					<plugin>
						<groupId>org.codehaus.gmavenplus</groupId>
						<artifactId>gmavenplus-plugin</artifactId>
						<version>1.13.1</version>
						<configuration>

						</configuration>
						<dependencies>
							<dependency>
								<groupId>org.codehaus.groovy</groupId>
								<artifactId>groovy</artifactId>
								<version>${maven.groovy.version}</version>
								<scope>runtime</scope>
								<type>pom</type>
							</dependency>
						</dependencies>
						<executions>
							<execution>
								<goals>
									<goal>addSources</goal>
									<goal>addTestSources</goal>
									<goal>generateStubs</goal>
									<goal>compile</goal>
									<goal>generateTestStubs</goal>
									<goal>compileTests</goal>
									<goal>removeStubs</goal>
									<goal>removeTestStubs</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<!-- endregion -->

		<!-- region dist -->
		<profile>
			<id>dist</id>
			<build>
				<plugins>
					<!-- Source -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<version>3.2.1</version>
						<configuration>
							<attach>true</attach>
						</configuration>
						<executions>
							<execution>
								<id>attach-sources</id>
								<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>
						<version>3.2.0</version>
						<configuration>
							<attach>true</attach>
							<doclint>none</doclint>
						</configuration>
						<executions>
							<execution>
								<id>javadoc-package</id>
								<phase>package</phase>
								<goals>
									<goal>aggregate-jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<!-- GPG -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<executions>
							<execution>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-deploy-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
		<!-- endregion -->

		<!-- region dist-ossrh -->
		<profile>
			<id>dist-ossrh</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.sonatype.plugins</groupId>
						<artifactId>nexus-staging-maven-plugin</artifactId>
						<version>1.6.7</version>
						<extensions>true</extensions>
						<configuration>
							<serverId>ossrh</serverId>
							<!--<nexusUrl>https://oss.sonatype.org/</nexusUrl>-->
							<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
							<autoReleaseAfterClose>true</autoReleaseAfterClose>
							<autoDropAfterRelease>true</autoDropAfterRelease>
							<showReleased>true</showReleased>
							<!-- 不发布时配置为true -->
							<!--<skipNexusStagingDeployMojo>true</skipNexusStagingDeployMojo>-->
						</configuration>
					</plugin>
				</plugins>
			</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>-->
				<snapshotRepository>
					<id>ossrh</id>
					<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
				</snapshotRepository>
				<repository>
					<id>ossrh</id>
					<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
				</repository>
			</distributionManagement>
		</profile>
		<!-- endregion -->

		<!-- region dist-central -->
		<profile>
			<id>dist-central</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.sonatype.central</groupId>
						<artifactId>central-publishing-maven-plugin</artifactId>
						<version>0.4.0</version>
						<extensions>true</extensions>
						<configuration>
							<publishingServerId>central</publishingServerId>
							<tokenAuth>true</tokenAuth>
							<autoPublish>true</autoPublish>
							<waitUntil>validated</waitUntil>
							<!--<waitUntil>published</waitUntil>-->
							<deploymentName>${deploymentName}</deploymentName>
						</configuration>
					</plugin>
				</plugins>
			</build>
			<distributionManagement>
				<snapshotRepository>
					<id>central</id>
					<url>https://oss.sonatype.org/content/repositories/snapshots</url>
				</snapshotRepository>
				<repository>
					<id>central</id>
					<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
				</repository>
			</distributionManagement>
		</profile>
		<!-- endregion -->
	</profiles>
</project>
