<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>org.springframework.boot</groupId>
	<artifactId>spring-boot-build</artifactId>
	<version>${revision}</version>
	<packaging>pom</packaging>
	<name>Spring Boot Build</name>
	<description>Spring Boot Build</description>
	<properties>
		<revision>2.1.10.BUILD-SNAPSHOT</revision>
		<main.basedir>${basedir}</main.basedir>
	</properties>
	<!-- Most elements are in profiles so they are stripped out during maven-flatten -->
	<profiles>
		<!-- Default profile for command line build -->
		<profile>
			<id>default</id>
			<activation>
				<property>
					<name>!disable-spring-boot-default-profile</name>
				</property>
			</activation>
			<properties>
				<spring-javaformat.version>0.0.15</spring-javaformat.version>
				<nohttp-checkstyle.version>0.0.3.RELEASE</nohttp-checkstyle.version>
			</properties>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-checkstyle-plugin</artifactId>
						<version>3.0.0</version>
						<dependencies>
							<dependency>
								<groupId>com.puppycrawl.tools</groupId>
								<artifactId>checkstyle</artifactId>
								<version>8.22</version>
							</dependency>
							<dependency>
								<groupId>io.spring.javaformat</groupId>
								<artifactId>spring-javaformat-checkstyle</artifactId>
								<version>${spring-javaformat.version}</version>
							</dependency>
							<dependency>
								<groupId>io.spring.nohttp</groupId>
								<artifactId>nohttp-checkstyle</artifactId>
								<version>${nohttp-checkstyle.version}</version>
							</dependency>
						</dependencies>
						<executions>
							<execution>
								<id>checkstyle-validation</id>
								<phase>validate</phase>
								<configuration>
									<skip>${disable.checks}</skip>
									<configLocation>src/checkstyle/checkstyle.xml</configLocation>
									<suppressionsLocation>src/checkstyle/checkstyle-suppressions.xml</suppressionsLocation>
									<includeTestSourceDirectory>true</includeTestSourceDirectory>
									<propertyExpansion>main.basedir=${main.basedir}</propertyExpansion>
									<encoding>UTF-8</encoding>
								</configuration>
								<goals>
									<goal>check</goal>
								</goals>
							</execution>
							<execution>
								<id>nohttp-checkstyle-validation</id>
								<phase>validate</phase>
								<configuration>
									<skip>${disable.checks}</skip>
									<configLocation>src/checkstyle/nohttp-checkstyle.xml</configLocation>
									<suppressionsLocation>src/checkstyle/nohttp-checkstyle-suppressions.xml</suppressionsLocation>
									<propertyExpansion>main.basedir=${main.basedir}</propertyExpansion>
									<encoding>UTF-8</encoding>
									<sourceDirectories>${basedir}</sourceDirectories>
									<includes>**/*</includes>
									<excludes>**/.git/**/*,**/target/**/,**/.flattened-pom.xml,**/*.class,**/spring-boot-gradle-plugin/build/**</excludes>
								</configuration>
								<goals>
									<goal>check</goal>
								</goals>
								<inherited>false</inherited>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>io.spring.javaformat</groupId>
						<artifactId>spring-javaformat-maven-plugin</artifactId>
						<version>${spring-javaformat.version}</version>
						<executions>
							<execution>
								<phase>validate</phase>
								<configuration>
									<skip>${disable.checks}</skip>
								</configuration>
								<goals>
									<goal>validate</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
			<modules>
				<module>spring-boot-project</module>
				<!-- Samples are built via the invoker plugin -->
				<module>spring-boot-samples-invoker</module>
				<module>spring-boot-tests</module>
			</modules>
		</profile>
		<!-- M2E profile to allow easy import into Eclipse -->
		<profile>
			<id>m2e</id>
			<activation>
				<property>
					<name>m2e.version</name>
				</property>
			</activation>
			<modules>
				<module>spring-boot-project</module>
				<module>spring-boot-samples</module>
				<module>spring-boot-tests</module>
			</modules>
		</profile>
		<profile>
			<id>repository</id>
			<activation>
				<property>
					<name>repository</name>
				</property>
			</activation>
			<repositories>
				<repository>
					<id>repository</id>
					<url>${repository}</url>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>repository</id>
					<url>${repository}</url>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
				</pluginRepository>
			</pluginRepositories>
		</profile>
	</profiles>
	<repositories>
		<!-- Repositories to allow snapshot and milestone BOM imports during development.
			This section is stripped by the flatten plugin during install/deploy. -->
		<repository>
			<id>central</id>
			<url>https://repo.maven.apache.org/maven2</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>spring-milestone</id>
			<name>Spring Milestone</name>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>spring-snapshot</id>
			<name>Spring Snapshot</name>
			<url>https://repo.spring.io/snapshot</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
		<repository>
			<id>rabbit-milestone</id>
			<name>Rabbit Milestone</name>
			<url>https://dl.bintray.com/rabbitmq/maven-milestones</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</repository>
	</repositories>
	<pluginRepositories>
		<pluginRepository>
			<id>central</id>
			<url>https://repo.maven.apache.org/maven2</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</pluginRepository>
		<pluginRepository>
			<id>spring-milestone</id>
			<name>Spring Milestone</name>
			<url>https://repo.spring.io/milestone</url>
			<snapshots>
				<enabled>false</enabled>
			</snapshots>
		</pluginRepository>
		<pluginRepository>
			<id>spring-snapshot</id>
			<name>Spring Snapshot</name>
			<url>https://repo.spring.io/snapshot</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</pluginRepository>
	</pluginRepositories>
	<build>
		<pluginManagement>
			<plugins>
				<!--This plugin's configuration is used to store Eclipse m2e settings
					only. It has no influence on the Maven build itself. -->
				<plugin>
					<groupId>org.eclipse.m2e</groupId>
					<artifactId>lifecycle-mapping</artifactId>
					<version>1.0.0</version>
					<configuration>
						<lifecycleMappingMetadata>
							<pluginExecutions>
								<pluginExecution>
									<pluginExecutionFilter>
										<groupId>
											org.jetbrains.kotlin
										</groupId>
										<artifactId>
											kotlin-maven-plugin
										</artifactId>
										<versionRange>
											[1.1.51,)
										</versionRange>
										<goals>
											<goal>compile</goal>
											<goal>test-compile</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore></ignore>
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
</project>
