<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>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<!-- spring-boot.version -->
		<!-- <version>2.0.0.M7</version> -->
		<version>2.0.0.RELEASE</version>
		<relativePath />
	</parent>

	<groupId>com.github.rebue.common-pom</groupId>
	<artifactId>sb-dependencies</artifactId>
	<version>1.0.7</version>
	<packaging>pom</packaging>
	<name>sb-dependencies</name>
	<description>Spring Boot工具类项目的父POM</description>
	<url>https://github.com/rebue/common-pom</url>

	<licenses>
		<license>
			<name>MIT License</name>
			<url>http://www.opensource.org/licenses/mit-license.php</url>
		</license>
	</licenses>

	<developers>
		<developer>
			<name>zhangbaizi</name>
			<email>nnzbz@163.com</email>
		</developer>
	</developers>

	<scm>
		<connection>scm:git:https://github.com/rebue/common-pom.git</connection>
		<developerConnection>scm:git:https://github.com/rebue/common-pom.git</developerConnection>
		<url>https://github.com/rebue/common-pom.git</url>
	</scm>

	<properties>
		<!-- <spring-boot.version>2.0.0.M7</spring-boot.version> -->
		<spring-boot.version>2.0.0.RELEASE</spring-boot.version>
		<!-- <spring-cloud.version>Finchley.M5</spring-cloud.version> -->
		<spring-cloud.version>Finchley.M8</spring-cloud.version>

		<mybatis-sbs.version>1.3.0</mybatis-sbs.version>
		<pagehelper-sbs.version>1.2.3</pagehelper-sbs.version>
		<dozer.version>6.1.0</dozer.version>

		<!-- Maven插件版本 -->
		<dockerfile-maven-plugin.version>1.3.6</dockerfile-maven-plugin.version>

		<java.version>1.8</java.version>

		<!-- 使用UTF-8 -->
		<encoding>UTF-8</encoding>
		<!-- 编译时的编码 -->
		<maven.compiler.encoding>${encoding}</maven.compiler.encoding>
		<argLine>-Dfile.encoding=${encoding}</argLine>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.github.rebue.common-pom</groupId>
				<artifactId>common-import</artifactId>
				<version>1.0.7</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>com.github.rebue.common-pom</groupId>
				<artifactId>rebue-import</artifactId>
				<version>1.0.7</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dependencies</artifactId>
				<version>${spring-cloud.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>

			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter</artifactId>
				<version>${spring-boot.version}</version>
				<exclusions>
					<exclusion>
						<groupId>org.springframework.boot</groupId>
						<artifactId>spring-boot-starter-logging</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-web</artifactId>
				<version>${spring-boot.version}</version>
				<exclusions>
					<exclusion>
						<groupId>org.springframework.boot</groupId>
						<artifactId>spring-boot-starter-tomcat</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-starter-validation</artifactId>
				<version>${spring-boot.version}</version>
				<exclusions>
					<exclusion>
						<groupId>org.apache.tomcat.embed</groupId>
						<artifactId>tomcat-embed-el</artifactId>
					</exclusion>
				</exclusions>
			</dependency>

			<dependency>
				<groupId>org.mybatis.spring.boot</groupId>
				<artifactId>mybatis-spring-boot-starter</artifactId>
				<version>${mybatis-sbs.version}</version>
			</dependency>

			<dependency>
				<groupId>com.github.pagehelper</groupId>
				<artifactId>pagehelper-spring-boot-starter</artifactId>
				<version>${pagehelper-sbs.version}</version>
			</dependency>

			<dependency>
				<groupId>com.github.dozermapper</groupId>
				<artifactId>dozer-spring-boot-starter</artifactId>
				<version>${dozer.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<resources>
			<!-- 将源代码目录中的xml/properties/tld文件也打包，比如mybatis的mapper.xml文件 -->
			<resource>
				<directory>src/main/java</directory>
				<includes>
					<include>**/*.properties</include>
					<include>**/*.xml</include>
					<include>**/*.tld</include>
				</includes>
				<filtering>false</filtering>
			</resource>
			<resource>
				<directory>src/main/resources</directory>
			</resource>
		</resources>

		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<configuration>
					<excludes>
						<!-- <exclude>conf/**</exclude> -->
						<exclude>config/**</exclude>
						<!-- <exclude>static/**</exclude> -->
						<exclude>**/*.yml</exclude>
						<exclude>**/log4j2.xml</exclude>
					</excludes>
				</configuration>
			</plugin>

			<!-- enforcer插件, 避免被依赖的依赖引入过期的jar包 -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<!-- <dependencies> -->
				<!-- <dependency> -->
				<!-- <groupId>com.github.rebue.maven</groupId> -->
				<!-- <artifactId>enforcer-rulex</artifactId> -->
				<!-- <version>1.0.0-SNAPSHOT</version> -->
				<!-- </dependency> -->
				<!-- </dependencies> -->
				<executions>
					<execution>
						<id>enforce-banned-dependencies</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<rules>
								<!-- <bannedDependenciesEx implementation="rebue.maven.enforcer.BannedDependenciesEx"> -->
								<bannedDependencies>
									<!-- 是否搜索传递性依赖(间接依赖)，默认false -->
									<searchTransitive>true</searchTransitive>
									<excludes>
										<!--groupId[:artifactId][:version][:type][:scope][:classifier] -->
										<exclude>commons-logging:commons-logging</exclude>
										<exclude>aspectj:aspectj*</exclude>
										<exclude>org.springframework:2.*</exclude>
										<exclude>org.springframework:3.*</exclude>
										<exclude>spring-boot-starter-logging</exclude>
										<exclude>hibernate-jpa-2.0-api</exclude>
									</excludes>
									<!-- <includes> -->
									<!-- 如果是spring-cloud-starter-eureka-server带的jcl则不用报错 -->
									<!-- <include>org.springframework.cloud:spring-cloud-starter-eureka-server->commons-logging:commons-logging</include> -->
									<!-- </includes> -->
								</bannedDependencies>
							</rules>
							<fail>true</fail>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>

		<pluginManagement>
			<plugins>
				<!-- 制作docker镜像的插件 -->
				<plugin>
					<groupId>com.spotify</groupId>
					<artifactId>dockerfile-maven-plugin</artifactId>
					<version>${dockerfile-maven-plugin.version}</version>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>

	<profiles>
		<profile>
			<id>deploy-private</id>
			<!-- 部署私服 -->
			<distributionManagement>
				<snapshotRepository>
					<id>my-snapshots</id>
					<name>my-snapshots</name>
					<url>${my-snapshots.url}</url>
					<uniqueVersion>true</uniqueVersion>
				</snapshotRepository>
				<repository>
					<id>my-releases</id>
					<name>my-releases</name>
					<url>${my-releases.url}</url>
				</repository>
			</distributionManagement>
		</profile>

		<profile>
			<id>deploy-public</id>
			<build>
				<plugins>
					<!-- 创建源码包 -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<executions>
							<execution>
								<phase>package</phase>
								<goals>
									<goal>jar-no-fork</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<!-- 创建文档包 -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<executions>
							<execution>
								<phase>package</phase>
								<goals>
									<goal>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>
				</plugins>
			</build>

			<!-- 部署中央仓库 -->
			<distributionManagement>
				<snapshotRepository>
					<id>oss</id>
					<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
				</snapshotRepository>
				<repository>
					<id>oss</id>
					<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
				</repository>
			</distributionManagement>
		</profile>
	</profiles>
</project>