<?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>icu.easyj</groupId>
	<artifactId>easyj-build</artifactId>
	<version>1.0.21</version>
	<packaging>pom</packaging>

	<name>${project.groupId} :: ${project.artifactId}</name>
	<description>为了方便其他Java项目的搭建，提供了该build，作为其他项目的父级`pom.xml`。</description>
	<url>https://gitee.com/easyj-projects/easyj-build</url>

	<inceptionYear>2021</inceptionYear>

	<organization>
		<name>EasyJ开源社区</name>
		<url>https://gitee.com/easyj-projects</url>
	</organization>

	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<developers>
		<developer>
			<id>wangliang181230</id>
			<name>王良</name>
			<email>841369634@qq.com</email>
			<url>https://gitee.com/wangliang181230</url>
			<organization>浙江蕙康科技有限公司</organization>
			<organizationUrl>https://www.jyhk.com</organizationUrl>
			<roles>
				<role>Java架构师</role>
			</roles>
		</developer>
	</developers>

	<scm>
		<connection>scm:git@gitee.com:easyj-projects/easyj-build.git</connection>
		<developerConnection>scm:git@gitee.com:easyj-projects/easyj-build.git</developerConnection>
		<url>https://gitee.com/easyj-projects/easyj-build</url>
	</scm>

	<issueManagement>
		<system>gitee</system>
		<url>https://gitee.com/easyj-projects/easyj-build/issues</url>
	</issueManagement>

	<build>
		<pluginManagement>
			<plugins>
				<!-- 插件定义：Clean -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-clean-plugin</artifactId>
					<version>3.1.0</version>
					<configuration>
						<failOnError>false</failOnError>
					</configuration>
				</plugin>
				<!-- 插件定义：Compiler -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.8.1</version>
					<configuration>
						<!-- 编译后保留原方法或构造函数参数名 -->
						<parameters>true</parameters>
						<source>1.8</source>
						<target>1.8</target>
						<encoding>UTF-8</encoding>
					</configuration>
				</plugin>
				<!-- 插件定义：Resources -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.2.0</version>
					<configuration>
						<encoding>UTF-8</encoding>
						<propertiesEncoding>UTF-8</propertiesEncoding>
						<delimiters>
							<delimiter>@</delimiter>
						</delimiters>
						<useDefaultDelimiters>false</useDefaultDelimiters>
					</configuration>
				</plugin>
				<!-- 插件定义：Surefire -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>2.22.2</version>
				</plugin>
				<!-- 插件定义：Jar -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>3.2.0</version>
					<configuration>
						<archive>
							<addMavenDescriptor>false</addMavenDescriptor>
							<manifest>
								<mainClass>${start-class}</mainClass>
								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							</manifest>
						</archive>
						<excludes>
							<exclude>**/META-INF/additional-spring-configuration-metadata.json</exclude>
						</excludes>
					</configuration>
				</plugin>
				<!-- 插件定义：War -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-war-plugin</artifactId>
					<version>3.3.1</version>
					<configuration>
						<archive>
							<addMavenDescriptor>false</addMavenDescriptor>
							<manifest>
								<mainClass>${start-class}</mainClass>
								<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
							</manifest>
						</archive>
					</configuration>
				</plugin>
				<!-- 插件定义：Spring Boot -->
				<plugin>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-maven-plugin</artifactId>
					<version>2.5.3</version>
					<executions>
						<execution>
							<id>repackage</id>
							<goals>
								<goal>repackage</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<mainClass>${start-class}</mainClass>
					</configuration>
				</plugin>
				<!-- 插件定义：Source -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-source-plugin</artifactId>
					<version>3.2.1</version>
					<executions>
						<execution>
							<phase>package</phase>
							<goals>
								<goal>jar-no-fork</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<!-- 插件定义：Javadoc -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>3.2.0</version>
					<configuration>
						<failOnError>false</failOnError>
						<charset>UTF-8</charset>
						<encoding>UTF-8</encoding>
						<docencoding>UTF-8</docencoding>
						<quiet>true</quiet>
					</configuration>
					<executions>
						<execution>
							<id>attach-javadocs</id>
							<phase>package</phase>
							<goals>
								<goal>jar</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<!-- 插件定义：Shade -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<version>3.2.1</version>
				</plugin>
				<!-- 插件定义：Cobertura 测试覆盖度 -->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>cobertura-maven-plugin</artifactId>
					<version>2.7</version>
					<configuration>
						<formats>
							<format>html</format>
							<format>xml</format>
						</formats>
						<check/>
					</configuration>
				</plugin>
				<!-- 插件定义：JaCoCo 测试覆盖度 -->
				<plugin>
					<groupId>org.jacoco</groupId>
					<artifactId>jacoco-maven-plugin</artifactId>
					<version>0.8.7</version>
					<executions>
						<execution>
							<goals>
								<goal>prepare-agent</goal>
							</goals>
						</execution>
						<execution>
							<id>report</id>
							<phase>test</phase>
							<goals>
								<goal>report</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<!-- 插件定义：Deploy -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-deploy-plugin</artifactId>
					<version>2.8.2</version>
				</plugin>
				<!-- 插件定义：Flatten -->
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>flatten-maven-plugin</artifactId>
					<version>1.2.7</version>
					<configuration>
						<updatePomFile>true</updatePomFile>
					</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>
				<!-- 插件定义：License -->
				<plugin>
					<groupId>com.mycila</groupId>
					<artifactId>license-maven-plugin</artifactId>
					<version>4.1</version>
					<executions>
						<execution>
							<phase>generate-sources</phase>
							<goals>
								<goal>remove</goal>
								<goal>format</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<quiet>true</quiet>
						<header>${user.dir}/src/license/copyright.txt</header>
						<includes>
							<include>**/src/main/java/**</include>
							<include>**/src/test/java/**</include>
						</includes>
						<strictCheck>true</strictCheck>
						<mapping>
							<java>SLASHSTAR_STYLE</java>
						</mapping>
					</configuration>
				</plugin>
				<!-- 插件定义：Checkstyle -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>3.1.2</version>
					<dependencies>
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
							<version>8.44</version>
						</dependency>
					</dependencies>
					<executions>
						<execution>
							<id>validate</id>
							<phase>validate</phase>
							<configuration>
								<configLocation>${user.dir}/src/checkstyle/checkstyle.xml</configLocation>
								<suppressionsLocation>${user.dir}/src/checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
								<encoding>UTF-8</encoding>
								<consoleOutput>true</consoleOutput>
								<failsOnError>false</failsOnError>
							</configuration>
							<goals>
								<goal>checkstyle</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<!-- 插件定义：dependency-check -->
				<plugin>
					<groupId>org.owasp</groupId>
					<artifactId>dependency-check-maven</artifactId>
					<version>6.5.1</version>
					<configuration>
						<autoUpdate>true</autoUpdate>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
			</plugins>
		</pluginManagement>

		<plugins>
			<!-- 使用插件：Compiler -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>
			<!-- 使用插件：Resources -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
			</plugin>
			<!-- 使用插件：Surefire -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			<!-- 使用插件：Deploy -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
			</plugin>
			<!-- 使用插件：dependency-check -->
			<plugin>
				<groupId>org.owasp</groupId>
				<artifactId>dependency-check-maven</artifactId>
			</plugin>
		</plugins>

		<resources>
			<resource>
				<directory>${basedir}/src/main/resources</directory>
			</resource>
			<resource>
				<directory>${basedir}/src/main/webapp</directory>
			</resource>
		</resources>
	</build>

	<profiles>
		<!-- profile: Auto adjust code -->
		<profile>
			<id>autocode</id>
			<build>
				<plugins>
					<!-- 使用插件：License -->
					<plugin>
						<groupId>com.mycila</groupId>
						<artifactId>license-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- profile: Check style -->
		<profile>
			<id>checkstyle</id>
			<build>
				<plugins>
					<!-- 使用插件：Checkstyle -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-checkstyle-plugin</artifactId>
						<executions>
							<execution>
								<configuration>
									<failsOnError>true</failsOnError>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<!-- 使用插件：Javadoc -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<configuration>
							<failOnError>true</failOnError>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- profile: CI/CD -->
		<profile>
			<id>cicd</id>
			<build>
				<plugins>
					<!-- 使用插件：Checkstyle -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-checkstyle-plugin</artifactId>
						<executions>
							<execution>
								<configuration>
									<failsOnError>true</failsOnError>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<!-- 使用插件：Javadoc -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<configuration>
							<failOnError>true</failOnError>
						</configuration>
					</plugin>
					<!-- 使用插件：JaCoCo -->
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- profile: api-doc -->
		<profile>
			<id>api-doc</id>
			<build>
				<plugins>
					<!-- 使用插件：Javadoc -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<configuration>
							<failOnError>false</failOnError>
						</configuration>
					</plugin>
					<!-- 跳过插件：Checkstyle -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-checkstyle-plugin</artifactId>
						<configuration>
							<skip>true</skip>
						</configuration>
						<executions>
							<execution>
								<configuration>
									<failsOnError>false</failsOnError>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<!-- 跳过插件：Surefire -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<skip>true</skip>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>

		<!-- profile: Release-KT -->
		<profile>
			<id>release-kt</id>
			<build>
				<plugins>
					<!-- 使用插件：Checkstyle -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-checkstyle-plugin</artifactId>
					</plugin>
					<!-- 使用插件：Source -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
					</plugin>
					<!-- 使用插件：Javadoc -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
			<!--资源上传管理-->
			<distributionManagement>
				<repository>
					<id>kt-nexus-releases</id>
					<url>http://www.kingtsoft.com:33084/nexus/content/repositories/releases</url>
				</repository>
				<snapshotRepository>
					<id>kt-nexus-snapshots</id>
					<url>http://www.kingtsoft.com:33084/nexus/content/repositories/snapshots</url>
				</snapshotRepository>
			</distributionManagement>
		</profile>

		<!-- profile: Release-KT2 -->
		<profile>
			<id>release-kt2</id>
			<build>
				<plugins>
					<!-- 使用插件：Checkstyle -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-checkstyle-plugin</artifactId>
					</plugin>
					<!-- 使用插件：Source -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
					</plugin>
					<!-- 使用插件：Javadoc -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
			<!--资源上传管理-->
			<distributionManagement>
				<repository>
					<id>kt2-nexus-releases</id>
					<url>http://10.1.51.186:8081/nexus/content/repositories/releases/</url>
				</repository>
				<snapshotRepository>
					<id>kt2-nexus-snapshots</id>
					<uniqueVersion>false</uniqueVersion>
					<url>http://10.1.51.186:8081/nexus/content/repositories/snapshots/</url>
				</snapshotRepository>
			</distributionManagement>
		</profile>

		<!-- profile: Release-OSSRH -->
		<profile>
			<id>release-ossrh</id>
			<build>
				<plugins>
					<!-- 使用插件：Checkstyle -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-checkstyle-plugin</artifactId>
						<executions>
							<execution>
								<configuration>
									<failsOnError>true</failsOnError>
								</configuration>
							</execution>
						</executions>
					</plugin>
					<!-- 使用插件：Source -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
					</plugin>
					<!-- 使用插件：Javadoc -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<configuration>
							<failOnError>true</failOnError>
						</configuration>
					</plugin>
					<!-- 使用插件：Nexus-Staging -->
					<plugin>
						<groupId>org.sonatype.plugins</groupId>
						<artifactId>nexus-staging-maven-plugin</artifactId>
						<version>1.6.8</version>
						<extensions>true</extensions>
						<configuration>
							<serverId>ossrh-easyj-releases</serverId>
							<nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
							<autoReleaseAfterClose>false</autoReleaseAfterClose>
						</configuration>
					</plugin>
					<!-- 使用插件：GPG -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<version>1.6</version>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
								<configuration>
									<keyname>A8FE5A54D8930774EE647F4A9F50958FB0B1CD9D</keyname>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
			<!-- OSSRH上传地址配置 -->
			<distributionManagement>
				<repository>
					<id>ossrh-easyj-releases</id>
					<url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</url>
				</repository>
				<snapshotRepository>
					<id>ossrh-easyj-snapshots</id>
					<url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
				</snapshotRepository>
			</distributionManagement>
		</profile>
	</profiles>
</project>