<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.rubensgomes.pom</groupId>
  <artifactId>root-pom</artifactId>
  <version>1.0-SNAPSHOT</version>
  <packaging>pom</packaging>
  <name>root-pom</name>
  <description>Maven Root POM: The Parent of All POMs</description>
  <url>https://github.com/rubensgomes/maven-parent-pom</url>
  <inceptionYear>2022</inceptionYear>
  <organization>
    <name>Rubens Gomes</name>
    <url>https://rubensgomes.com</url>
  </organization>
  <developers>
    <developer>
      <name>Rubens Gomes</name>
      <email>rubens.s.gomes@gmail.com</email>
      <organization>Rubens Gomes</organization>
      <roles>
        <role>architect</role>
        <role>developer</role>
      </roles>
      <timezone>America/Chicago</timezone>
    </developer>
  </developers>
  <modules>
    <module>library</module>
    <module>springboot</module>
    <module>springboot/app</module>
    <module>springboot/library</module>
    <module>springboot/webapp</module>
  </modules>
  <scm>
    <connection>scm:git:https://github.com/rubensgomes/maven-parent-pom</connection>
    <url>https://github.com/rubensgomes/maven-parent-pom</url>
  </scm>
  <distributionManagement>
    <repository>
      <id>myMavenRepo.release.repo</id>
      <url>https://mymavenrepo.com/repo/7FlqHiEzj6RRvMdznYj0/</url>
    </repository>
    <snapshotRepository>
      <id>myMavenRepo.snapshot.repo</id>
      <url>https://mymavenrepo.com/repo/7FlqHiEzj6RRvMdznYj0/</url>
    </snapshotRepository>
  </distributionManagement>
  <properties>
    <junit-bom.version>5.9.3</junit-bom.version>
    <jackson-bom.version>2.15.2</jackson-bom.version>
    <parent_pom_build.timestamp>Thu Jul 13 08:36:04 CDT 2023</parent_pom_build.timestamp>
    <commons-beanutils.version>1.9.4</commons-beanutils.version>
    <flatten-maven-plugin.version>1.5.0</flatten-maven-plugin.version>
    <spring-cloud.version>2021.0.8</spring-cloud.version>
    <springdoc-openapi-maven-plugin.version>1.4</springdoc-openapi-maven-plugin.version>
    <jcl-over-slf4j>${slf4j.version}</jcl-over-slf4j>
    <slf4j.version>2.0.7</slf4j.version>
    <commons-lang3.version>3.12.0</commons-lang3.version>
    <commons-configuration.version>1.10</commons-configuration.version>
    <log4j-core>${log4j-bom.version}</log4j-core>
    <maven-jar-plugin.version>3.3.0</maven-jar-plugin.version>
    <maven.compiler.source>${java.version}</maven.compiler.source>
    <commons-cli.version>1.5.0</commons-cli.version>
    <httpclient5-parent.version>5.2.1</httpclient5-parent.version>
    <formatter-maven-plugin.version>2.23.0</formatter-maven-plugin.version>
    <maven-compiler-plugin.version>3.11.0</maven-compiler-plugin.version>
    <jacoco.version>0.8.10</jacoco.version>
    <maven-clean-plugin.version>3.2.0</maven-clean-plugin.version>
    <revision>1.x-SNAPSHOT</revision>
    <maven-enforcer-plugin.version>3.3.0</maven-enforcer-plugin.version>
    <maven-surefire-plugin.version>3.1.2</maven-surefire-plugin.version>
    <spring-cloud-function.version>4.0.3</spring-cloud-function.version>
    <jcl-to-slf4j>${slf4j.version}</jcl-to-slf4j>
    <maven-war-plugin.version>3.4.0</maven-war-plugin.version>
    <maven-resources-plugin.version>3.3.1</maven-resources-plugin.version>
    <log4j-slf4j-impl.version>${log4j-bom.version}</log4j-slf4j-impl.version>
    <maven-install-plugin.version>3.1.1</maven-install-plugin.version>
    <mainClass>TO_BE_DEFINED_IN_APPLICATION_POM</mainClass>
    <maven-source-plugin.version>3.3.0</maven-source-plugin.version>
    <guava-bom.version>32.0.1-jre</guava-bom.version>
    <struts2-bom.version>6.1.2.1</struts2-bom.version>
    <jetty.version>11.0.15</jetty.version>
    <commons-configuration2.version>2.9.0</commons-configuration2.version>
    <spring-boot.version>2.7.13</spring-boot.version>
    <httpclient5.version>${httpclient5-parent.version}</httpclient5.version>
    <spring-plugin-core.version>3.0.0</spring-plugin-core.version>
    <gson.version>2.10.1</gson.version>
    <springdoc.version>1.7.0</springdoc.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <jul-to-slf4j>${slf4j.version}</jul-to-slf4j>
    <maven-help-plugin.version>3.4.0</maven-help-plugin.version>
    <commons-io.version>2.13.0</commons-io.version>
    <maven-deploy-plugin.version>3.1.1</maven-deploy-plugin.version>
    <log4j2.version>${log4j-bom.version}</log4j2.version>
    <maven-failsafe-plugin.version>3.1.2</maven-failsafe-plugin.version>
    <java.version>11</java.version>
    <commons-digester3.version>3.2</commons-digester3.version>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.compiler.target>${java.version}</maven.compiler.target>
    <commons-csv.version>1.10.0</commons-csv.version>
    <commons-text.version>1.10.0</commons-text.version>
    <joda-time.version>2.12.5</joda-time.version>
    <git-commit-id-maven-plugin.version>6.0.0</git-commit-id-maven-plugin.version>
    <log4j-bom.version>2.20.0</log4j-bom.version>
    <build-tools-core.version>2.0</build-tools-core.version>
    <commons-validator.version>1.7</commons-validator.version>
    <argLine>-Xmx1024m</argLine>
    <maven-site-plugin.version>maven-site-plugin</maven-site-plugin.version>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava-bom</artifactId>
        <version>${guava-bom.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents.client5</groupId>
        <artifactId>httpclient5-parent</artifactId>
        <version>${httpclient5-parent.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>com.fasterxml.jackson</groupId>
        <artifactId>jackson-bom</artifactId>
        <version>${jackson-bom.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-bom</artifactId>
        <version>${jetty.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.junit</groupId>
        <artifactId>junit-bom</artifactId>
        <version>${junit-bom.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-bom</artifactId>
        <version>${log4j-bom.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.struts</groupId>
        <artifactId>struts2-bom</artifactId>
        <version>${struts2-bom.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
      <dependency>
        <groupId>commons-beanutils</groupId>
        <artifactId>commons-beanutils</artifactId>
        <version>${commons-beanutils.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-cli</groupId>
        <artifactId>commons-cli</artifactId>
        <version>${commons-cli.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-configuration</groupId>
        <artifactId>commons-configuration</artifactId>
        <version>${commons-configuration.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>${commons-io.version}</version>
      </dependency>
      <dependency>
        <groupId>commons-validator</groupId>
        <artifactId>commons-validator</artifactId>
        <version>${commons-validator.version}</version>
      </dependency>
      <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>${gson.version}</version>
      </dependency>
      <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
        <version>${joda-time.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-configuration2</artifactId>
        <version>${commons-configuration2.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-csv</artifactId>
        <version>${commons-csv.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-digester3</artifactId>
        <version>${commons-digester3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>${commons-lang3.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-text</artifactId>
        <version>${commons-text.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>${springdoc.version}</version>
      </dependency>
      <dependency>
        <groupId>org.springframework.plugin</groupId>
        <artifactId>spring-plugin-core</artifactId>
        <version>${spring-plugin-core.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>${log4j-bom.version}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>${jcl-over-slf4j}</version>
      </dependency>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jul-to-slf4j</artifactId>
        <version>${jul-to-slf4j}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>${log4j-bom.version}</version>
      </dependency>
      <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>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
    </dependency>
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jacoco</groupId>
      <artifactId>org.jacoco.agent</artifactId>
      <version>${jacoco.version}</version>
      <classifier>runtime</classifier>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-engine</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-nop</artifactId>
      <version>${slf4j.version}</version>
      <scope>runtime</scope>
    </dependency>
  </dependencies>
  <repositories>
    <repository>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>always</updatePolicy>
        <checksumPolicy>warn</checksumPolicy>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <id>myMavenRepo.release.repo</id>
      <url>https://mymavenrepo.com/repo/7FlqHiEzj6RRvMdznYj0/</url>
    </repository>
    <repository>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>myMavenRepo.snapshot.repo</id>
      <url>https://mymavenrepo.com/repo/7FlqHiEzj6RRvMdznYj0/</url>
    </repository>
  </repositories>
  <build>
    <resources>
      <resource>
        <filtering>true</filtering>
        <directory>${project.basedir}/src/main/resources</directory>
        <excludes>
          <exclude>**/rebel.xml</exclude>
        </excludes>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <filtering>true</filtering>
        <directory>${project.basedir}/src/test/resources</directory>
      </testResource>
    </testResources>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>flatten-maven-plugin</artifactId>
          <version>${flatten-maven-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-flattening-POM-file</id>
              <phase>process-resources</phase>
              <goals>
                <goal>flatten</goal>
              </goals>
            </execution>
            <execution>
              <id>rg-cleaning-flattened-POM-file</id>
              <phase>clean</phase>
              <goals>
                <goal>clean</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <updatePomFile>true</updatePomFile>
            <flattenMode>resolveCiFriendliesOnly</flattenMode>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-help-plugin</artifactId>
          <version>${maven-help-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-displaying-environment</id>
              <phase>validate</phase>
              <goals>
                <goal>system</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${maven-enforcer-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-displaying-platform-info</id>
              <phase>compile</phase>
              <goals>
                <goal>display-info</goal>
              </goals>
            </execution>
            <execution>
              <id>rg-validating-environment</id>
              <phase>validate</phase>
              <goals>
                <goal>enforce</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <rules>
              <requireMavenVersion>
                <version>[3.8,)</version>
                <message>Must use maven version 3.8+</message>
              </requireMavenVersion>
              <requireJavaVersion>
                <version>${java.version}</version>
                <message>Must use Java 11+</message>
              </requireJavaVersion>
              <requireProperty>
                <property>java.vendor</property>
                <regex>^(?!.*\bOracle\b).*$</regex>
                <regexMessage>Do *NOT* use Oracle Java</regexMessage>
                <level>WARN</level>
              </requireProperty>
            </rules>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${maven-resources-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-processing-resources</id>
              <phase>process-resources</phase>
              <goals>
                <goal>resources</goal>
              </goals>
            </execution>
            <execution>
              <id>default-resources</id>
              <phase>none</phase>
              <goals>
                <goal>resources</goal>
              </goals>
            </execution>
            <execution>
              <id>rg-processing-test-resources</id>
              <phase>process-test-resources</phase>
              <goals>
                <goal>testResources</goal>
              </goals>
            </execution>
            <execution>
              <id>default-testResources</id>
              <phase>none</phase>
              <goals>
                <goal>testResources</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <propertiesEncoding>ISO-8859-1</propertiesEncoding>
            <nonFilteredFileExtensions>
              <nonFilteredFileExtension>class</nonFilteredFileExtension>
              <nonFilteredFileExtension>jar</nonFilteredFileExtension>
              <nonFilteredFileExtension>jks</nonFilteredFileExtension>
              <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
              <nonFilteredFileExtension>p12</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
          </configuration>
        </plugin>
        <plugin>
          <groupId>io.github.git-commit-id</groupId>
          <artifactId>git-commit-id-maven-plugin</artifactId>
          <version>${git-commit-id-maven-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-generating-git-info</id>
              <phase>process-resources</phase>
              <goals>
                <goal>revision</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <verbose>false</verbose>
            <generateGitPropertiesFile>true</generateGitPropertiesFile>
            <generateGitPropertiesFilename>${project.build.outputDirectory}/git.properties</generateGitPropertiesFilename>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.springdoc</groupId>
          <artifactId>springdoc-openapi-maven-plugin</artifactId>
          <version>${springdoc-openapi-maven-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-generating-openapi</id>
              <goals>
                <goal>generate</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <outputFileName>${project.artifactId}-openapi.json</outputFileName>
            <skip>false</skip>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${maven-clean-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-cleaning</id>
              <phase>clean</phase>
              <goals>
                <goal>clean</goal>
              </goals>
            </execution>
            <execution>
              <id>default-clean</id>
              <phase>none</phase>
              <goals>
                <goal>clean</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <filesets>
              <fileset>
                <directory>${basedir}</directory>
                <includes>
                  <include>**/jacoco.exec</include>
                  <include>**/jacoco-it.exec</include>
                  <include>**/.sonar/**</include>
                  <include>**/test-output/**</include>
                  <include>**/generated/**</include>
                </includes>
                <followSymlinks>false</followSymlinks>
              </fileset>
            </filesets>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven-compiler-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-compiling-source-files</id>
              <phase>compile</phase>
              <goals>
                <goal>compile</goal>
              </goals>
            </execution>
            <execution>
              <id>default-compile</id>
              <phase>none</phase>
              <goals>
                <goal>compile</goal>
              </goals>
            </execution>
            <execution>
              <id>rg-compiling-test-files</id>
              <phase>test-compile</phase>
              <goals>
                <goal>testCompile</goal>
              </goals>
            </execution>
            <execution>
              <id>default-testCompile</id>
              <phase>none</phase>
              <goals>
                <goal>testCompile</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <compilerArgs>
              <arg>-Xlint:all</arg>
            </compilerArgs>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-unit-testing</id>
              <phase>test</phase>
              <goals>
                <goal>test</goal>
              </goals>
            </execution>
            <execution>
              <id>default-test</id>
              <phase>none</phase>
              <goals>
                <goal>test</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <systemPropertyVariables>
              <jacoco-agent.destfile>target/jacoco.exec</jacoco-agent.destfile>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${maven-failsafe-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-integration-testing</id>
              <phase>integration-test</phase>
              <goals>
                <goal>integration-test</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <systemPropertyVariables>
              <jacoco-agent.destfile>target/jacoco-it.exec</jacoco-agent.destfile>
            </systemPropertyVariables>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco.version}</version>
          <executions>
            <execution>
              <id>rg-jacoco-instrumenting-classes</id>
              <goals>
                <goal>instrument</goal>
              </goals>
            </execution>
            <execution>
              <id>rg-jacoco-restoring-instrumented-classes</id>
              <phase>post-integration-test</phase>
              <goals>
                <goal>restore-instrumented-classes</goal>
              </goals>
            </execution>
            <execution>
              <id>rg-jacoco-merging-test-coverage-results</id>
              <phase>post-integration-test</phase>
              <goals>
                <goal>merge</goal>
              </goals>
              <configuration>
                <fileSets>
                  <fileSet>
                    <directory>${project.build.directory}</directory>
                    <includes>
                      <include>*.exec</include>
                    </includes>
                    <excludes>
                      <exclude>aggregate.exec</exclude>
                    </excludes>
                  </fileSet>
                </fileSets>
                <destFile>${project.build.directory}/aggregate.exec</destFile>
              </configuration>
            </execution>
            <execution>
              <id>rg-jacoco-generating-merged-XML-report</id>
              <phase>post-integration-test</phase>
              <goals>
                <goal>report</goal>
              </goals>
              <configuration>
                <dataFile>${project.build.directory}/aggregate.exec</dataFile>
                <outputDirectory>${project.reporting.outputDirectory}/jacoco-aggregate</outputDirectory>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-source-plugin</artifactId>
          <version>${maven-source-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-packaging-source-files-to-jar</id>
              <phase>package</phase>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <archive>
              <index>false</index>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${maven-jar-plugin.version}</version>
          <executions>
            <execution>
              <id>default-jar</id>
              <phase>none</phase>
              <goals>
                <goal>jar</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <archive>
              <index>false</index>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
              </manifest>
              <manifestSections>
                <manifestSection>
                  <name>Build Section</name>
                  <manifestEntries>
                    <Build-Time>${maven.build.timestamp}</Build-Time>
                    <Build-Host-Linux>${env.HOSTNAME}</Build-Host-Linux>
                    <Build-Host-Windows>${env.COMPUTERNAME}.${env.USERDNSDOMAIN}</Build-Host-Windows>
                    <Build-User>${user.name}</Build-User>
                    <Build-Java-Compiler-rgget>${maven.compiler.target}</Build-Java-Compiler-rgget>
                    <Build-OS>${os.name}</Build-OS>
                    <Build-Version>${project.version}</Build-Version>
                    <Build-Path>${basedir}</Build-Path>
                  </manifestEntries>
                </manifestSection>
              </manifestSections>
            </archive>
            <classesDirectory>${project.build.outputDirectory}</classesDirectory>
            <outputDirectory>${project.build.directory}</outputDirectory>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>${maven-war-plugin.version}</version>
          <executions>
            <execution>
              <id>default-war</id>
              <phase>none</phase>
              <goals>
                <goal>war</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <archive>
              <index>false</index>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
              </manifest>
              <manifestSections>
                <manifestSection>
                  <name>Build Section</name>
                  <manifestEntries>
                    <Build-Time>${maven.build.timestamp}</Build-Time>
                    <Build-Host-Linux>${env.HOSTNAME}</Build-Host-Linux>
                    <Build-Host-Windows>${env.COMPUTERNAME}.${env.USERDNSDOMAIN}</Build-Host-Windows>
                    <Build-User>${user.name}</Build-User>
                    <Build-Java-Compiler-rgget>${maven.compiler.target}</Build-Java-Compiler-rgget>
                    <Build-OS>${os.name}</Build-OS>
                    <Build-Version>${project.version}</Build-Version>
                    <Build-Path>${basedir}</Build-Path>
                  </manifestEntries>
                </manifestSection>
              </manifestSections>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>${maven-install-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-installing-build-locally</id>
              <phase>install</phase>
              <goals>
                <goal>install</goal>
              </goals>
            </execution>
            <execution>
              <id>default-install</id>
              <phase>none</phase>
              <goals>
                <goal>install</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${maven-deploy-plugin.version}</version>
          <executions>
            <execution>
              <id>rg-deploying-build</id>
              <phase>deploy</phase>
              <goals>
                <goal>deploy</goal>
              </goals>
            </execution>
            <execution>
              <id>default-deploy</id>
              <phase>none</phase>
              <goals>
                <goal>deploy</goal>
              </goals>
            </execution>
            <execution>
              <id>default-cli</id>
              <phase>none</phase>
              <goals>
                <goal>deploy-file</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <reporting>
    <plugins>
      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <report>report</report>
              <report>report-integration</report>
            </reports>
          </reportSet>
        </reportSets>
      </plugin>
    </plugins>
  </reporting>
  <profiles>
    <profile>
      <id>simple</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>flatten-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>dev</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>io.github.git-commit-id</groupId>
            <artifactId>git-commit-id-maven-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
              <execution>
                <id>rg-packaging-jar</id>
                <phase>package</phase>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
              <execution>
                <id>rg-packaging-test-jar</id>
                <phase>package</phase>
                <goals>
                  <goal>test-jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>snap</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-help-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
            <configuration>
              <rules>
                <requireSnapshotVersion>
                  <message>Release artifact CANNOT be built in SNAPSHOT</message>
                  <failWhenParentIsRelease>false</failWhenParentIsRelease>
                </requireSnapshotVersion>
                <requireReleaseDeps>
                  <message>SNAPSHOT dependencies found.</message>
                  <level>WARN</level>
                </requireReleaseDeps>
              </rules>
              <fail>true</fail>
            </configuration>
          </plugin>
          <plugin>
            <groupId>io.github.git-commit-id</groupId>
            <artifactId>git-commit-id-maven-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
              <execution>
                <id>rg-packaging-jar-after-jacoco-restored-classes</id>
                <phase>post-integration-test</phase>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
              <execution>
                <id>rg-packaging-test-jar-after-jacoco-restored-classes</id>
                <phase>post-integration-test</phase>
                <goals>
                  <goal>test-jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>rel</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-help-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-enforcer-plugin</artifactId>
            <configuration>
              <rules>
                <requireReleaseVersion>
                  <message>SNAPSHOT artifact cannot be built in Release build</message>
                </requireReleaseVersion>
                <requireReleaseDeps>
                  <message>SNAPSHOT dependencies NOT allowed in Release build</message>
                </requireReleaseDeps>
              </rules>
              <fail>true</fail>
            </configuration>
          </plugin>
          <plugin>
            <groupId>io.github.git-commit-id</groupId>
            <artifactId>git-commit-id-maven-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-failsafe-plugin</artifactId>
          </plugin>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-source-plugin</artifactId>
          </plugin>
          <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <executions>
              <execution>
                <id>rg-packaging-jar-after-jacoco-restored-classes</id>
                <phase>post-integration-test</phase>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
              <execution>
                <id>rg-packaging-test-jar-after-jacoco-restored-classes</id>
                <phase>post-integration-test</phase>
                <goals>
                  <goal>test-jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
