<?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>in.co.akshitbansal</groupId>
	<artifactId>spring-boot-starter-web-query</artifactId>
	<version>0.22.0</version>
	<name>spring-boot-starter-web-query</name>
	<description>Effective querying for Spring Web APIs</description>
	<url>https://github.com/abansal755/spring-web-query</url>
	<scm>
		<url>https://github.com/abansal755/spring-web-query</url>
		<connection>scm:git:https://github.com/abansal755/spring-web-query.git</connection>
		<developerConnection>scm:git:ssh://git@github.com:abansal755/spring-web-query.git</developerConnection>
		<tag>HEAD</tag>
	</scm>
	<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>abansal755</id>
			<name>Akshit Bansal</name>
			<email>bansalakshitwork@gmail.com</email>
		</developer>
	</developers>
	<properties>
		<java.version>17</java.version>
		<maven.compiler.release>${java.version}</maven.compiler.release>
		<lombok.version>1.18.42</lombok.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
	</properties>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-dependencies</artifactId>
				<version>${spring-boot.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>
		<!--	Compile Dependencies	-->
		<dependency>
			<groupId>in.co.akshitbansal</groupId>
			<artifactId>spring-web-query-core</artifactId>
			<version>0.22.0</version>
		</dependency>

		<!--	Provided Dependencies	-->
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>${lombok.version}</version>
			<scope>provided</scope>
		</dependency>

		<!--	Test Dependencies	-->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<repositories>
		<repository>
			<id>central-snapshot</id>
			<url>https://central.sonatype.com/repository/maven-snapshots</url>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.15.0</version>
				<configuration>
					<compilerArgs>
						<arg>-XDcompilePolicy=simple</arg>
						<arg>--should-stop=ifError=FLOW</arg>
						<arg>
							-Xplugin:ErrorProne
							-XepExcludedPaths:.*/src/test/.*
							-XepDisableAllChecks
							-Xep:NullAway:ERROR
							-XepOpt:NullAway:OnlyNullMarked=true
						</arg>
					</compilerArgs>
					<annotationProcessorPaths>
						<path>
							<groupId>org.projectlombok</groupId>
							<artifactId>lombok</artifactId>
							<version>${lombok.version}</version>
						</path>
						<path>
							<groupId>com.google.errorprone</groupId>
							<artifactId>error_prone_core</artifactId>
							<version>2.42.0</version>
						</path>
						<path>
							<groupId>com.uber.nullaway</groupId>
							<artifactId>nullaway</artifactId>
							<version>0.13.1</version>
						</path>
					</annotationProcessorPaths>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>3.12.0</version>
				<configuration>
					<doclint>all,-missing</doclint>
				</configuration>
				<executions>
					<execution>
						<id>attach-javadocs</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.4.0</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.sonatype.central</groupId>
				<artifactId>central-publishing-maven-plugin</artifactId>
				<version>0.10.0</version>
				<extensions>true</extensions>
				<configuration>
					<publishingServerId>central</publishingServerId>
					<autoPublish>true</autoPublish>
				</configuration>
			</plugin>
			<plugin>
				<groupId>com.diffplug.spotless</groupId>
				<artifactId>spotless-maven-plugin</artifactId>
				<version>3.4.0</version>
				<configuration>
					<java>
						<indent>
							<tabs>true</tabs>
							<spacesPerTab>4</spacesPerTab>
						</indent>
						<removeUnusedImports/>
						<licenseHeader>
							<file>license-header.txt</file>
							<delimiter>package</delimiter>
						</licenseHeader>
					</java>
				</configuration>
				<executions>
					<execution>
						<phase>verify</phase>
						<goals>
							<goal>check</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>release</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-gpg-plugin</artifactId>
						<version>3.2.8</version>
						<executions>
							<execution>
								<id>sign-artifacts</id>
								<phase>verify</phase>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<gpgArguments>
								<arg>--pinentry-mode</arg>
								<arg>loopback</arg>
							</gpgArguments>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>jacoco</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
						<version>0.8.14</version>
						<executions>
							<execution>
								<id>prepare-agent</id>
								<goals>
									<goal>prepare-agent</goal>
								</goals>
							</execution>
							<execution>
								<id>report</id>
								<phase>test</phase>
								<goals>
									<goal>report</goal>
								</goals>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>sonar</id>
			<properties>
				<sonar.projectKey>abansal755_spring-boot-starter-web-query</sonar.projectKey>
				<sonar.organization>abansal755</sonar.organization>
			</properties>
			<build>
				<plugins>
					<plugin>
						<groupId>org.sonarsource.scanner.maven</groupId>
						<artifactId>sonar-maven-plugin</artifactId>
						<version>5.7.0.6970</version>
						<executions>
							<execution>
								<goals>
									<goal>sonar</goal>
								</goals>
								<phase>verify</phase>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>boot3</id>
			<properties>
				<spring-boot.version>3.5.13</spring-boot.version>
			</properties>
		</profile>
		<profile>
			<id>boot4</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<properties>
				<spring-boot.version>4.0.6</spring-boot.version>
			</properties>
		</profile>
	</profiles>
</project>
