<?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/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<!-- 基础信息 -->
    <groupId>cn.dev33</groupId>
    <artifactId>sa-token-parent</artifactId>
	<packaging>pom</packaging>
	<version>${revision}</version>
	
	<!-- 项目介绍 -->
	<name>sa-token</name>
	<description>A Java Web lightweight authority authentication framework, comprehensive function, easy to use</description>
	<url>https://github.com/dromara/sa-token</url>

	
	<!-- 所有模块 -->
	<modules>
		<module>sa-token-dependencies</module>
		<module>sa-token-special-dependencies</module>
		<module>sa-token-bom</module>
		<module>sa-token-core</module>
		<module>sa-token-starter</module>
		<module>sa-token-plugin</module>
	</modules>

	<!-- 开源协议 apache 2.0 -->
	<licenses>
		<license>
			<name>Apache 2</name>
			<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
			<distribution>repo</distribution>
			<comments>A business-friendly OSS license</comments>
		</license>
	</licenses>
	
	<!-- 一些属性 -->
	<properties>
        <revision>1.45.0</revision>
        <jdk.version>1.8</jdk.version>
		<project.build.sourceEncoding>utf-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>utf-8</project.reporting.outputEncoding>

		<!-- Maven GPG Plugin & Maven Central Portal -->
		<maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
		<central.publishing.maven.version>0.10.0</central.publishing.maven.version>
	</properties>

	<!-- 仓库信息 -->
	<scm>
		<tag>master</tag>
		<url>https://github.com/dromara/sa-token.git</url>
		<connection>scm:git:https://github.com/dromara/sa-token.git</connection>
		<developerConnection>scm:git:https://github.com/dromara/sa-token.git</developerConnection>
	</scm>
	
	<!-- 作者信息 -->
	<developers>
		<developer>
			<name>click33</name>
			<email>2393584716@qq.com</email>
		</developer>
	</developers>
	
	<!-- 仓库依赖 -->
	<dependencies>
		
	</dependencies>
	
	<dependencyManagement>
		<dependencies>

			<!--
			 	导入 sa-token-dependencies 所有版本定义，并传导到每个子项目。
			 	需要注意的是：该 import 只会导入 <dependencyManagement> 部分，而不会导入 <dependencies> 部分和 <properties> 部分。
			 -->
			<dependency>
				<groupId>cn.dev33</groupId>
				<artifactId>sa-token-dependencies</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
                <scope>import</scope>
			</dependency>
			
		</dependencies>
	</dependencyManagement>
	
	<!-- 项目构建 -->
	<build>
		<plugins>

			<!-- Source -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.4.0</version>
				<configuration>
					<attach>true</attach>
				</configuration>
				<executions>
					<execution>
						<phase>compile</phase>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- 源码编译 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.15.0</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
				</configuration>
			</plugin>

			<!-- API 文档 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.12.0</version>
				<configuration>
					<!-- 统一生成聚合文档，解决 mvn package 时控制台发出 javadoc 警告的问题 -->
					<!-- <aggregate>true</aggregate> -->
					<!-- 忽略部分 error 和 warning -->
					<failOnError>false</failOnError>
					<failOnWarnings>false</failOnWarnings>
					<additionalOptions>-Xdoclint:none</additionalOptions>
					<detectLinks>false</detectLinks>
				</configuration>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>aggregate</goal>
						</goals>
					</execution>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
						<configuration>
							<doclint>none</doclint>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- flatten 统一版本号管理 -->
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>flatten-maven-plugin</artifactId>
				<version>1.7.3</version>
				<configuration>
					<updatePomFile>true</updatePomFile>
					<flattenMode>resolveCiFriendliesOnly</flattenMode>
				</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>

			<!-- gpg 签名 -->
		   	<plugin>
			   <groupId>org.apache.maven.plugins</groupId>
			   <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>

			<!-- 新版 Central Portal 中央仓库上传   -->
			<plugin>
				<groupId>org.sonatype.central</groupId>
				<artifactId>central-publishing-maven-plugin</artifactId>
				<version>${central.publishing.maven.version}</version>
				<extensions>true</extensions>
				<configuration>
					<!-- 必须与 settings.xml 中 server 的 id 一致 -->
					<publishingServerId>central</publishingServerId>
					<!-- 是否自动发布。设为 true 后，上传完成无需手动点击发布 -->
					<!-- <autoPublish>true</autoPublish> -->
					<!-- 等待直到发布完成，让构建过程等待最终结果 -->
					<!-- <waitUntil>published</waitUntil> -->
				</configuration>
		   	</plugin>

	   	</plugins>

	   	<pluginManagement>
		   	<plugins>
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>org.apache.maven.plugins</groupId>
										<artifactId>maven-enforcer-plugin</artifactId>
										<versionRange>[1.0.0,)</versionRange>
										<goals>
											<goal>enforce</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
	   	</pluginManagement>

	</build>
	
</project>
