<?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.cloud</groupId>
	<artifactId>spring-cloud-dataflow-build</artifactId>
	<version>2.7.1</version>
	<packaging>pom</packaging>
	<name>Spring Cloud Dataflow Build</name>
	<description>Spring Cloud Dataflow Build, managing plugins and dependencies</description>
	<modules>
		<module>spring-cloud-dataflow-build-dependencies</module>
		<module>spring-cloud-dataflow-dependencies-parent</module>
		<module>spring-cloud-dataflow-build-tools</module>
	</modules>
	<url>https://spring.io/projects/spring-cloud-dataflow</url>
	<properties>
		<java.version>1.8</java.version>
		<resource.delimiter>@</resource.delimiter>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
		<maven.compiler.source>${java.version}</maven.compiler.source>
		<maven.compiler.target>${java.version}</maven.compiler.target>
		<main.basedir>${basedir}</main.basedir>
		<docs.main>${project.artifactId}</docs.main>
		<spring-cloud-dataflow-build.version>2.7.1</spring-cloud-dataflow-build.version>
		<spring-boot.version>2.3.7.RELEASE</spring-boot.version>
		<docs.resources.dir>${project.build.directory}/build-docs</docs.resources.dir>
		<refdocs.build.directory>${project.build.directory}/refdocs/</refdocs.build.directory>
		<spring-doc-resources.version>0.1.0.RELEASE</spring-doc-resources.version>
		<spring-asciidoctor-extensions.version>0.1.3.RELEASE</spring-asciidoctor-extensions.version>
		<asciidoctorj-pdf.version>1.5.0-alpha.18</asciidoctorj-pdf.version>
		<asciidoctorj-diagram.version>1.5.18</asciidoctorj-diagram.version>
		<guides-project.version>${project.version}</guides-project.version>
		<guides-update.phase>deploy</guides-update.phase>
		<revision>${project.version}</revision>
		<asciidoctorj.version>1.5.8</asciidoctorj.version>
		<jruby-complete.version>9.2.7.0</jruby-complete.version>

		<!-- Sonar -->
		<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
		<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>
		<sonar.jacoco.reportPath>${project.basedir}/../target/jacoco.exec</sonar.jacoco.reportPath>
		<sonar.language>java</sonar.language>

		<!-- Plugins -->
		<maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
		<maven-eclipse-plugin.version>2.10</maven-eclipse-plugin.version>
		<!-- for backwards compatibility, use maven-checkstyle-plugin.version -->
		<checkstyle.version>${maven-checkstyle-plugin.version}</checkstyle.version>
		<puppycrawl-tools-checkstyle.version>8.29</puppycrawl-tools-checkstyle.version>
		<spring-javaformat.version>0.0.9</spring-javaformat.version>
		<maven-failsafe-plugin.version>3.0.0-M4</maven-failsafe-plugin.version>
		<maven-javadoc-plugin.version>3.1.0</maven-javadoc-plugin.version>
		<maven-source-plugin.version>3.0.1</maven-source-plugin.version>
		<maven-jar-plugin.version>3.1.0</maven-jar-plugin.version>
		<maven-antrun-plugin.version>1.8</maven-antrun-plugin.version>
		<maven-surefire-plugin.version>3.0.0-M4</maven-surefire-plugin.version>
		<exec-maven-plugin.version>1.6.0</exec-maven-plugin.version>
		<maven-resources-plugin.version>3.1.0</maven-resources-plugin.version>
		<git-commit-id-plugin.version>3.0.0</git-commit-id-plugin.version>
		<maven-shade-plugin.version>3.1.1</maven-shade-plugin.version>
		<maven-enforcer-plugin.version>3.0.0-M2</maven-enforcer-plugin.version>
		<maven-gpg-plugin.version>1.6</maven-gpg-plugin.version>
		<maven-dependency-plugin.version>3.1.1</maven-dependency-plugin.version>
		<asciidoctor-maven-plugin.version>1.5.8</asciidoctor-maven-plugin.version>
		<build-helper-maven-plugin.version>3.0.0</build-helper-maven-plugin.version>
		<artifactory-maven-plugin.version>2.2.1</artifactory-maven-plugin.version>
		<license-maven-plugin.version>1.16</license-maven-plugin.version>
		<spring-javaformat-checkstyle.version>0.0.7</spring-javaformat-checkstyle.version>
		<maven-checkstyle-plugin.version>3.1.0</maven-checkstyle-plugin.version>
		<disable.checks>false</disable.checks>
		<maven-checkstyle-plugin.failsOnError>true</maven-checkstyle-plugin.failsOnError>
		<maven-checkstyle-plugin.failOnViolation>true</maven-checkstyle-plugin.failOnViolation>
		<maven-checkstyle-plugin.includeTestSourceDirectory>true</maven-checkstyle-plugin.includeTestSourceDirectory>
		<spring-cloud-build-checkstyle.branch>master</spring-cloud-build-checkstyle.branch>
		<checkstyle.suppressions.file>
			https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow-build/${spring-cloud-build-checkstyle.branch}/spring-cloud-dataflow-build-tools/src/checkstyle/checkstyle-suppressions.xml
		</checkstyle.suppressions.file>
		<checkstyle.nohttp.file>
			https://raw.githubusercontent.com/spring-cloud/spring-cloud-dataflow-build/${spring-cloud-build-checkstyle.branch}/spring-cloud-dataflow-build-tools/src/checkstyle/nohttp-checkstyle.xml
		</checkstyle.nohttp.file>
		<checkstyle.additional.suppressions.file>
			${maven.multiModuleProjectDirectory}/src/checkstyle/checkstyle-suppressions.xml
		</checkstyle.additional.suppressions.file>
		<nohttp-checkstyle.version>0.0.2.RELEASE</nohttp-checkstyle.version>
		<disable.nohttp.checks>true</disable.nohttp.checks>
		<antelopetasks.version>3.2.10</antelopetasks.version>
		<ant-nodeps.version>1.8.1</ant-nodeps.version>
		<configprops.path>${project.basedir}/src/main/asciidoc/_configprops.adoc</configprops.path>
		<configprops.inclusionPattern>.*</configprops.inclusionPattern>
		<maven-dependency-plugin-for-docs.phase>generate-resources</maven-dependency-plugin-for-docs.phase>
		<maven-dependency-plugin-for-guides.phase>generate-resources</maven-dependency-plugin-for-guides.phase>
		<groups />
		<excludedGroups>slow,docker</excludedGroups>
	</properties>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.cloud</groupId>
				<artifactId>spring-cloud-dataflow-build-dependencies</artifactId>
				<version>2.7.1</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>
	<organization>
		<name>Pivotal Software, Inc.</name>
		<url>https://www.spring.io</url>
	</organization>
	<licenses>
		<license>
			<name>Apache License, Version 2.0</name>
			<url>https://www.apache.org/licenses/LICENSE-2.0</url>
		</license>
	</licenses>
	<scm>
		<url>https://github.com/spring-cloud/spring-cloud-dataflow-build</url>
		<connection>scm:git:git://github.com/spring-cloud/spring-cloud-dataflow-build.git
		</connection>
		<developerConnection>
			scm:git:ssh://git@github.com/spring-cloud/spring-cloud-dataflow-build.git
		</developerConnection>
		<tag>HEAD</tag>
	</scm>
	<developers>
		<developer>
			<id>scdf-team</id>
			<name>Data Flow Team</name>
			<organizationUrl>https://github.com/spring-cloud/spring-cloud-dataflow/graphs/contributors</organizationUrl>
		</developer>
	</developers>
	<build>
		<!-- Turn on filtering by default for application properties -->
		<resources>
			<resource>
				<directory>${basedir}/src/main/resources</directory>
				<filtering>true</filtering>
				<includes>
					<include>**/application*.yml</include>
					<include>**/application*.properties</include>
				</includes>
			</resource>
			<resource>
				<directory>${basedir}/src/main/resources</directory>
				<excludes>
					<exclude>**/application*.yml</exclude>
					<exclude>**/application*.properties</exclude>
				</excludes>
			</resource>
		</resources>
		<plugins>
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${maven-javadoc-plugin.version}</version>
				<executions>
					<execution>
						<id>javadoc</id>
						<goals>
							<goal>jar</goal>
						</goals>
						<phase>package</phase>
					</execution>
				</executions>
				<configuration>
					<!-- TODO: We need to patch the javadocs instead of disabling this -->
					<failOnError>false</failOnError>
					<quiet>true</quiet>
				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-source-plugin</artifactId>
				<version>${maven-source-plugin.version}</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
						<phase>package</phase>
					</execution>
				</executions>
			</plugin>
		</plugins>
		<pluginManagement>
			<plugins>
				<!-- Apply more sensible defaults for user projects -->
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-eclipse-plugin</artifactId>
					<version>${maven-eclipse-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>${maven-compiler-plugin.version}</version>
					<configuration>
						<source>${maven.compiler.source}</source>
						<target>${maven.compiler.target}</target>
						<compilerArgument>-parameters</compilerArgument>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-failsafe-plugin</artifactId>
					<version>${maven-failsafe-plugin.version}</version>
					<configuration>
						<groups>${groups}</groups>
						<excludedGroups>${excludedGroups}</excludedGroups>
					</configuration>
					<executions>
						<execution>
							<goals>
								<goal>integration-test</goal>
								<goal>verify</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-jar-plugin</artifactId>
					<version>${maven-jar-plugin.version}</version>
					<configuration>
						<archive>
							<manifest>
								<mainClass>${start-class}</mainClass>
								<addDefaultImplementationEntries>true
								</addDefaultImplementationEntries>
							</manifest>
						</archive>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-antrun-plugin</artifactId>
					<version>${maven-antrun-plugin.version}</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-surefire-plugin</artifactId>
					<version>${maven-surefire-plugin.version}</version>
					<configuration>
						<includes>
							<include>**/*Tests.java</include>
							<include>**/*Test.java</include>
						</includes>
						<excludes>
							<exclude>**/Abstract*.java</exclude>
						</excludes>
						<groups>${groups}</groups>
						<excludedGroups>${excludedGroups}</excludedGroups>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>exec-maven-plugin</artifactId>
					<version>${exec-maven-plugin.version}</version>
					<configuration>
						<mainClass>${start-class}</mainClass>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>${maven-resources-plugin.version}</version>
					<configuration>
						<delimiters>
							<delimiter>${resource.delimiter}</delimiter>
						</delimiters>
						<useDefaultDelimiters>false</useDefaultDelimiters>
					</configuration>
				</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>apply</goal>
								<goal>validate</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>${maven-checkstyle-plugin.version}</version>
					<dependencies>
						<dependency>
							<groupId>com.puppycrawl.tools</groupId>
							<artifactId>checkstyle</artifactId>
							<version>${puppycrawl-tools-checkstyle.version}</version>
						</dependency>
						<dependency>
							<groupId>io.spring.javaformat</groupId>
							<artifactId>spring-javaformat-checkstyle</artifactId>
							<version>${spring-javaformat-checkstyle.version}</version>
						</dependency>
						<dependency>
							<groupId>org.springframework.cloud</groupId>
							<artifactId>spring-cloud-dataflow-build-tools</artifactId>
							<version>${spring-cloud-dataflow-build.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>
							<inherited>true</inherited>
							<configuration>
								<skip>${disable.checks}</skip>
								<configLocation>checkstyle.xml</configLocation>
								<headerLocation>checkstyle-header.txt</headerLocation>
								<propertyExpansion>
									checkstyle.build.directory=${project.build.directory}
									checkstyle.suppressions.file=${checkstyle.suppressions.file}
									checkstyle.additional.suppressions.file=${checkstyle.additional.suppressions.file}
								</propertyExpansion>
								<consoleOutput>true</consoleOutput>
								<!-- TODO: Start fixing the errors -->
								<includeTestSourceDirectory>
									${maven-checkstyle-plugin.includeTestSourceDirectory}
								</includeTestSourceDirectory>
								<failsOnError>${maven-checkstyle-plugin.failsOnError}
								</failsOnError>
								<failOnViolation>
									${maven-checkstyle-plugin.failOnViolation}
								</failOnViolation>
							</configuration>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
						<execution>
							<id>no-http-checkstyle-validation</id>
							<phase>validate</phase>
							<inherited>true</inherited>
							<configuration>
								<skip>${disable.nohttp.checks}</skip>
								<configLocation>${checkstyle.nohttp.file}</configLocation>
								<includes>**/*</includes>
								<excludes>**/.idea/**/*,**/.git/**/*,**/target/**/*,**/*.log</excludes>
								<sourceDirectories>./</sourceDirectories>
							</configuration>
							<goals>
								<goal>check</goal>
							</goals>
						</execution>
					</executions>
				</plugin>
				<plugin>
					<groupId>pl.project13.maven</groupId>
					<artifactId>git-commit-id-plugin</artifactId>
					<version>${git-commit-id-plugin.version}</version>
					<executions>
						<execution>
							<goals>
								<goal>revision</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<verbose>true</verbose>
						<dateFormat>yyyy-MM-dd'T'HH:mm:ssZ</dateFormat>
						<generateGitPropertiesFile>true</generateGitPropertiesFile>
						<generateGitPropertiesFilename>
							${project.build.outputDirectory}/git.properties
						</generateGitPropertiesFilename>
						<skipPoms>false</skipPoms>
					</configuration>
				</plugin>
				<!-- Support our own plugin -->
				<plugin>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-maven-plugin</artifactId>
					<version>${spring-boot.version}</version>
					<executions>
						<execution>
							<goals>
								<goal>repackage</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<mainClass>${start-class}</mainClass>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>${maven-enforcer-plugin.version}</version>
					<executions>
						<execution>
							<id>enforce-versions</id>
							<goals>
								<goal>enforce</goal>
							</goals>
						</execution>
					</executions>
					<configuration>
						<fail>false</fail>
						<rules>
							<dependencyConvergence />
						</rules>
					</configuration>
				</plugin>
				<!--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.apache.maven.plugins
										</groupId>
										<artifactId>
											maven-checkstyle-plugin
										</artifactId>
										<versionRange>
											[2.17,)
										</versionRange>
										<goals>
											<goal>check</goal>
										</goals>
									</pluginExecutionFilter>
									<action>
										<ignore />
									</action>
								</pluginExecution>
							</pluginExecutions>
						</lifecycleMappingMetadata>
					</configuration>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>${maven-javadoc-plugin.version}</version>
					<executions>
						<execution>
							<id>aggregate</id>
							<goals>
								<goal>aggregate</goal>
							</goals>
							<phase>site</phase>
						</execution>
					</executions>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	<reporting>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>${maven-javadoc-plugin.version}</version>
				<reportSets>
					<reportSet>
						<id>non-aggregate</id>
						<configuration>
						</configuration>
						<reports>
							<report>javadoc</report>
						</reports>
					</reportSet>
					<reportSet>
						<id>aggregate</id>
						<configuration>
						</configuration>
						<reports>
							<report>aggregate</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
		</plugins>
	</reporting>
	<profiles>
		<profile>
			<id>spring</id>
			<repositories>
				<repository>
					<id>spring-snapshots</id>
					<name>Spring Snapshots</name>
					<url>https://repo.spring.io/libs-snapshot-local</url>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
					<releases>
						<enabled>false</enabled>
					</releases>
				</repository>
				<repository>
					<id>spring-milestones</id>
					<name>Spring Milestones</name>
					<url>https://repo.spring.io/libs-milestone-local</url>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</repository>
				<repository>
					<id>spring-releases</id>
					<name>Spring Releases</name>
					<url>https://repo.spring.io/release</url>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</repository>
				<repository>
					<id>spring-plugins</id>
					<name>Spring Maven Plugins Repository</name>
					<url>https://repo.spring.io/plugins-release</url>
				</repository>
			</repositories>
			<pluginRepositories>
				<pluginRepository>
					<id>spring-snapshots</id>
					<name>Spring Snapshots</name>
					<url>https://repo.spring.io/libs-snapshot-local</url>
					<snapshots>
						<enabled>true</enabled>
					</snapshots>
					<releases>
						<enabled>false</enabled>
					</releases>
				</pluginRepository>
				<pluginRepository>
					<id>spring-milestones</id>
					<name>Spring Milestones</name>
					<url>https://repo.spring.io/libs-milestone-local</url>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</pluginRepository>
				<pluginRepository>
					<id>spring-releases</id>
					<name>Spring Releases</name>
					<url>https://repo.spring.io/libs-release-local</url>
					<snapshots>
						<enabled>false</enabled>
					</snapshots>
				</pluginRepository>
			</pluginRepositories>
		</profile>
		<profile>
			<id>milestone</id>
			<distributionManagement>
				<repository>
					<id>repo.spring.io</id>
					<name>Spring Milestone Repository</name>
					<url>https://repo.spring.io/libs-milestone-local</url>
				</repository>
			</distributionManagement>
		</profile>
		<profile>
			<id>java8</id>
			<activation>
				<jdk>[1.8,)</jdk>
			</activation>
			<build>
				<plugins>
					<plugin>
						<artifactId>maven-javadoc-plugin</artifactId>
						<configuration>
							<additionalparam>-Xdoclint:none</additionalparam>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>sonar</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
						<version>0.7.4.201502262128</version>
						<configuration>
							<destFile>${sonar.jacoco.reportPath}</destFile>
							<append>true</append>
						</configuration>
						<executions>
							<execution>
								<id>agent</id>
								<goals>
									<goal>prepare-agent</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<version>${maven-surefire-plugin.version}</version>
						<configuration>
							<properties>
								<property>
									<name>listener</name>
									<value>org.sonar.java.jacoco.JUnitListener</value>
								</property>
							</properties>
						</configuration>
					</plugin>
				</plugins>
			</build>
			<dependencies>
				<dependency>
					<groupId>org.sonarsource.java</groupId>
					<artifactId>sonar-jacoco-listeners</artifactId>
					<version>3.8</version>
					<scope>test</scope>
				</dependency>
			</dependencies>
		</profile>
		<profile>
			<id>license</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>license-maven-plugin</artifactId>
						<version>${license-maven-plugin.version}</version>
						<executions>
							<execution>
								<id>aggregate-licenses</id>
								<goals>
									<goal>license:aggregate-add-third-party</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>fast</id>
			<properties>
				<checkstyle.skip>true</checkstyle.skip>
			</properties>
		</profile>
		<profile>
			<id>failsafe</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-failsafe-plugin</artifactId>
						<version>${maven-failsafe-plugin.version}</version>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>checkstyle</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-checkstyle-plugin</artifactId>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>
</project>
