<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>

  <artifactId>freelib-parent</artifactId>
  <name>FreeLibrary Parent Project</name>
  <description>A Parent POM for FreeLibrary Projects</description>
  <packaging>pom</packaging>

  <properties>
    <!-- FreeLibrary projects whose versions are managed through this parent -->
    <freelib.resources.version>${project.parent.version}</freelib.resources.version>

    <!-- Dependencies managed through this parent project -->
    <junit.version>4.12</junit.version>
    <slf4j.version>1.7.25</slf4j.version>
    <xmlunit.version>1.6</xmlunit.version>
    <groovy.version>2.5.4</groovy.version>
    <logback.version>1.2.3</logback.version>
    <pegdown.version>1.6.0</pegdown.version>
    <phantomjs.version>1.9.7</phantomjs.version>
    <ghostdriver.version>1.1.0</ghostdriver.version>

    <!-- Maven plug-in dependencies managed through this parent project -->
    <maven.version>3.5.4</maven.version>
    <maven.plugin.annotations.version>3.5.2</maven.plugin.annotations.version>
    <gpg.plugin.version>1.5</gpg.plugin.version>
    <maven.source.plugin.version>2.2.1</maven.source.plugin.version>
    <nexus.staging.plugin.version>1.6.3</nexus.staging.plugin.version>
    <maven.verifier.version>1.6</maven.verifier.version>
    <maven.filtering.version>3.1.1</maven.filtering.version>
    <phantomjs.plugin.version>0.7</phantomjs.plugin.version>
    <exec.maven.plugin.version>1.6.0</exec.maven.plugin.version>
    <maven.plugin.plugin.version>3.6.0</maven.plugin.plugin.version>
    <maven.clean.plugin.version>3.1.0</maven.clean.plugin.version>
    <maven.install.plugin.version>2.5.2</maven.install.plugin.version>
    <maven.failsafe.plugin.version>3.0.0-M1</maven.failsafe.plugin.version>
    <maven.enforcer.plugin.version>3.0.0-M2</maven.enforcer.plugin.version>
    <maven.javadoc.plugin.version>3.1.1</maven.javadoc.plugin.version>
    <maven.surefire.plugin.version>3.0.0-M1</maven.surefire.plugin.version>
    <maven.resources.plugin.version>3.1.0</maven.resources.plugin.version>
    <maven.dependency.plugin.version>3.1.1</maven.dependency.plugin.version>
    <maven.dependency.analyzer.version>1.11.1</maven.dependency.analyzer.version>
    <build.helper.maven.plugin.version>3.0.0</build.helper.maven.plugin.version>
    <properties.maven.plugin.version>1.0.0</properties.maven.plugin.version>
    <maven.compiler.plugin.version>3.8.0</maven.compiler.plugin.version>
    <pmd.plugin.version>3.11.0</pmd.plugin.version>
    <codacy.plugin.version>1.2.0</codacy.plugin.version>

    <!-- Configure the project's character encodings -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

    <!-- Disable the default site generation; we'll use JBake instead -->
    <maven.site.skip>true</maven.site.skip>
    <maven.site.plugin.version>3.8.2</maven.site.plugin.version>
    <jbake.outputDirectory>target/site</jbake.outputDirectory>
    <jbake.maven.plugin.version>0.3.1</jbake.maven.plugin.version>
    <flexmark.version>0.32.18</flexmark.version>

    <!-- We want to override the skip tests directive in our parent project -->
    <maven.test.skip>false</maven.test.skip>

    <!-- Location used for finding the unpacked checkstyle-suppressions.xml file -->
    <!-- It's a built-in configuration for eclipse-cs tool; make it work with Maven -->
    <config_loc>${project.basedir}/src/main/tools/checkstyle</config_loc>
    <maven.checkstyle.version>3.1.0</maven.checkstyle.version>
    <checkstyle.version>8.25</checkstyle.version>

    <!-- The extension we use to push site productions up to an S3 bucket -->
    <maven.s3.wagon.version>1.2.1</maven.s3.wagon.version>

    <!-- Jacoco configuration -->
    <jacoco.dataFile>${project.build.directory}/jacoco.exec</jacoco.dataFile>
    <jacoco.maven.plugin.version>0.8.2</jacoco.maven.plugin.version>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>${slf4j.version}</version>
      </dependency>
      <!-- Below dependencies are only used for testing -->
      <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-classic</artifactId>
        <version>${logback.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>xmlunit</groupId>
        <artifactId>xmlunit</artifactId>
        <version>${xmlunit.version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>com.github.detro.ghostdriver</groupId>
        <artifactId>phantomjsdriver</artifactId>
        <version>${ghostdriver.version}</version>
        <scope>test</scope>
      </dependency>
      <!-- Dependencies for Maven plug-ins -->
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-plugin-api</artifactId>
        <version>${maven.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.plugin-tools</groupId>
        <artifactId>maven-plugin-annotations</artifactId>
        <version>${maven.plugin.annotations.version}</version>
        <scope>provided</scope>
      </dependency>
      <dependency>
        <groupId>org.apache.maven</groupId>
        <artifactId>maven-core</artifactId>
        <version>${maven.version}</version>
      </dependency>
      <dependency>
        <groupId>org.apache.maven.shared</groupId>
        <artifactId>maven-verifier</artifactId>
        <version>${maven.verifier.version}</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${maven.compiler.plugin.version}</version>
          <configuration>
            <generatedSourcesDirectory>${project.basedir}/src/main/generated</generatedSourcesDirectory>
            <generatedTestSourcesDirectory>${project.basedir}/src/main/generated</generatedTestSourcesDirectory>
          </configuration>
        </plugin>
        <!-- Does code analysis -->
        <!--<![CDATA[
          Disable PMD plug-in deprecation warnings by running Maven (mvn) with the following property:
            -Dorg.slf4j.simpleLogger.log.net.sourceforge.pmd=error
        ]]>-->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${pmd.plugin.version}</version>
          <configuration>
            <linkXRef>false</linkXRef>
            <printFailingErrors>true</printFailingErrors>
            <rulesets>
              <ruleset>${project.basedir}/src/main/tools/pmd/pmd-rules.xml</ruleset>
            </rulesets>
            <targetJdk>${maven.compiler.source}</targetJdk>
          </configuration>
          <executions>
            <execution>
              <phase>verify</phase>
              <goals>
                <goal>pmd</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>${maven.install.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>${maven.plugin.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>properties-maven-plugin</artifactId>
          <version>${properties.maven.plugin.version}</version>
        </plugin>
        <!-- Installs PhantomJS so it doesn't have to be pre-installed -->
        <plugin>
          <groupId>com.github.klieber</groupId>
          <artifactId>phantomjs-maven-plugin</artifactId>
          <version>${phantomjs.plugin.version}</version>
          <executions>
            <execution>
              <goals>
                <goal>install</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <version>${phantomjs.version}</version>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${build.helper.maven.plugin.version}</version>
          <configuration>
            <portNames>
              <portName>http.port</portName>
              <portName>http.port.stop</portName>
            </portNames>
          </configuration>
          <executions>
            <execution>
              <id>reserve-port</id>
              <phase>initialize</phase>
              <goals>
                <goal>reserve-network-port</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${maven.dependency.plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.shared</groupId>
              <artifactId>maven-dependency-analyzer</artifactId>
              <version>${maven.dependency.analyzer.version}</version>
              <exclusions>
                <exclusion>
                  <artifactId>maven-project</artifactId>
                  <groupId>org.apache.maven</groupId>
                </exclusion>
              </exclusions>
            </dependency>
          </dependencies>
          <executions>
            <execution>
              <id>unpack-build-resources</id>
              <phase>generate-resources</phase>
              <goals>
                <goal>unpack</goal>
              </goals>
              <configuration>
                <artifactItems>
                  <artifactItem>
                    <groupId>info.freelibrary</groupId>
                    <artifactId>freelib-resources</artifactId>
                    <version>${freelib.resources.version}</version>
                    <type>jar</type>
                    <includes>eclipse/**/*,checkstyle/**/*,pmd/**/*,travis/**/*</includes>
                    <outputDirectory>${basedir}/target/build-resources</outputDirectory>
                  </artifactItem>
                  <artifactItem>
                    <groupId>info.freelibrary</groupId>
                    <artifactId>freelib-resources</artifactId>
                    <version>${freelib.resources.version}</version>
                    <type>jar</type>
                    <includes>settings.xml</includes>
                    <includes>buildlog.properties</includes>
                    <outputDirectory>${basedir}/src/test/resources</outputDirectory>
                  </artifactItem>
                </artifactItems>
              </configuration>
            </execution>
            <execution>
              <id>unpack-site-resources</id>
              <phase>pre-site</phase>
              <goals>
                <goal>unpack</goal>
              </goals>
              <configuration>
                <artifactItems>
                  <artifactItem>
                    <groupId>info.freelibrary</groupId>
                    <artifactId>freelib-resources</artifactId>
                    <version>${freelib.resources.version}</version>
                    <type>jar</type>
                    <includes>jbake/**/*</includes>
                    <outputDirectory>${basedir}/target</outputDirectory>
                  </artifactItem>
                </artifactItems>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${maven.resources.plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>org.apache.maven.shared</groupId>
              <artifactId>maven-filtering</artifactId>
              <version>${maven.filtering.version}</version>
            </dependency>
          </dependencies>
          <executions>
            <execution>
              <id>copy-build-resources</id>
              <phase>process-resources</phase>
              <goals>
                <goal>copy-resources</goal>
              </goals>
              <configuration>
                <outputDirectory>${basedir}/src/main/tools</outputDirectory>
                <resources>
                  <resource>
                    <directory>${basedir}/target/build-resources</directory>
                    <filtering>true</filtering>
                    <excludes>
                      <exclude>**/pmd/**</exclude>
                      <exclude>**/eclipse/**</exclude>
                      <exclude>**/travis/**</exclude>
                    </excludes>
                  </resource>
                  <!-- We want our checkstyle rules filtered for the checkstyle-suppression.xml -->
                  <resource>
                    <directory>${basedir}/target/build-resources</directory>
                    <filtering>false</filtering>
                    <excludes>
                      <exclude>**/checkstyle/**</exclude>
                    </excludes>
                  </resource>
                </resources>
              </configuration>
            </execution>
            <execution>
              <id>copy-site-resources</id>
              <phase>pre-site</phase>
              <goals>
                <goal>copy-resources</goal>
              </goals>
              <configuration>
                <outputDirectory>${basedir}/target/jbake</outputDirectory>
                <resources>
                  <resource>
                    <directory>${basedir}/src/main/jbake</directory>
                    <filtering>true</filtering>
                  </resource>
                </resources>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${maven.enforcer.plugin.version}</version>
          <executions>
            <execution>
              <id>enforce-no-snapshots</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <failFast>true</failFast>
                <rules>
                  <requireReleaseDeps>
                    <onlyWhenRelease>false</onlyWhenRelease>
                    <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
                    <message>
                      <![CDATA[Sorry, dependency snapshots are not allowed! To temporarily ignore this]]>
                      <![CDATA[restriction add the following to the command line: -Denforcer.skip=true]]>
                    </message>
                  </requireReleaseDeps>
                </rules>
                <fail>true</fail>
              </configuration>
            </execution>
            <execution>
              <id>enforce-java</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <rules>
                  <requireJavaVersion>
                    <version>[1.8.0,)</version>
                  </requireJavaVersion>
                </rules>
              </configuration>
            </execution>
            <execution>
              <id>enforce-maven</id>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <rules>
                  <requireMavenVersion>
                    <version>[3.2.2,)</version>
                  </requireMavenVersion>
                </rules>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${maven.checkstyle.version}</version>
          <configuration>
            <logViolationsToConsole>true</logViolationsToConsole>
            <violationSeverity>warning</violationSeverity>
            <includeTestSourceDirectory>true</includeTestSourceDirectory>
            <configLocation>${basedir}/src/main/tools/checkstyle/checkstyle.xml</configLocation>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>com.puppycrawl.tools</groupId>
              <artifactId>checkstyle</artifactId>
              <version>${checkstyle.version}</version>
            </dependency>
          </dependencies>
          <executions>
            <execution>
              <id>checkstyle</id>
              <phase>verify</phase>
              <goals>
                <goal>check</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${maven.javadoc.plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>info.freelibrary</groupId>
              <artifactId>freelib-resources</artifactId>
              <version>${freelib.resources.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <stylesheetfile>javadocs.css</stylesheetfile>
            <nodeprecatedlist>true</nodeprecatedlist>
            <noindex>true</noindex>
            <notree>true</notree>
            <nohelp>true</nohelp>
            <nodeprecated>true</nodeprecated>
            <show>public</show>
            <nosince>true</nosince>
            <notimestamp>true</notimestamp>
            <bottom> </bottom>
            <detectLinks>false</detectLinks>
            <additionalJOptions>
              <additionalJOption>-J-Dhttp.agent=maven-javadoc-plugin-${project.name}</additionalJOption>
            </additionalJOptions>
            <sourcepath>${project.basedir}/src/main/java:src/main/generated</sourcepath>
            <links>
              <link>${javadocs.jdk.url}</link>
            </links>
          </configuration>
          <executions>
            <execution>
              <id>site-javadocs</id>
              <phase>site</phase>
              <goals>
                <goal>javadoc</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.jbake</groupId>
          <artifactId>jbake-maven-plugin</artifactId>
          <version>${jbake.maven.plugin.version}</version>
          <dependencies>
            <dependency>
              <groupId>com.vladsch.flexmark</groupId>
              <artifactId>flexmark</artifactId>
              <version>${flexmark.version}</version>
            </dependency>
            <dependency>
              <groupId>com.vladsch.flexmark</groupId>
              <artifactId>flexmark-profile-pegdown</artifactId>
              <version>${flexmark.version}</version>
            </dependency>
            <dependency>
              <groupId>org.codehaus.groovy</groupId>
              <artifactId>groovy</artifactId>
              <version>${groovy.version}</version>
            </dependency>
            <dependency>
              <groupId>org.codehaus.groovy</groupId>
              <artifactId>groovy-dateutil</artifactId>
              <version>${groovy.version}</version>
              <classifier>indy</classifier>
            </dependency>
            <dependency>
              <groupId>org.codehaus.groovy</groupId>
              <artifactId>groovy-templates</artifactId>
              <version>${groovy.version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <inputDirectory>${basedir}/target/jbake</inputDirectory>
          </configuration>
          <executions>
            <execution>
              <id>site-docs</id>
              <phase>site</phase>
              <goals>
                <goal>generate</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven.surefire.plugin.version}</version>
          <configuration>
            <!-- Our integration tests shouldn't be run as unit tests -->
            <excludes>
              <exclude>**/*IT.java</exclude>
              <exclude>**/*IntegrationTest.java</exclude>
              <exclude>**/*FunctionalTest.java</exclude>
            </excludes>
            <forkCount>3</forkCount>
            <reuseForks>true</reuseForks>
            <argLine>-XX:MaxMetaspaceSize=512m ${jacoco.agent.arg}</argLine>
            <systemPropertyVariables>
              <http.agent>Maven</http.agent>
            </systemPropertyVariables>
            <trimStackTrace>false</trimStackTrace>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>${exec.maven.plugin.version}</version>
          <configuration>
            <systemProperties>
              <systemProperty>
                <key>logback.configurationFile</key>
                <value>${project.basedir}/src/main/resources/logback.xml</value>
              </systemProperty>
            </systemProperties>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${maven.failsafe.plugin.version}</version>
          <configuration>
            <argLine>-XX:MaxMetaspaceSize=128m ${jacoco.agent.arg}</argLine>
            <includes>
              <include>**/*IT.java</include>
              <include>**/*IntegrationTest.java</include>
            </includes>
            <excludes>
              <exclude>**/*.xml</exclude>
              <exclude>**/*.md</exclude>
            </excludes>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <version>${maven.enforcer.plugin.version}</version>
      </plugin>
    </plugins>
    <extensions>
      <extension>
        <groupId>org.kuali.maven.wagons</groupId>
        <artifactId>maven-s3-wagon</artifactId>
        <version>${maven.s3.wagon.version}</version>
      </extension>
    </extensions>
  </build>

  <!-- Profiles that should be inherited by child projects -->
  <profiles>
    <!-- Set the Maven compiler version based on system JDK -->
    <profile>
      <id>java8</id>
      <activation>
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <javadocs.jdk.url>https://docs.oracle.com/javase/8/docs/api/</javadocs.jdk.url>
      </properties>
    </profile>
    <profile>
      <id>java9</id>
      <activation>
        <jdk>9</jdk>
      </activation>
      <properties>
        <maven.compiler.release>9</maven.compiler.release>
        <javadocs.jdk.url>https://docs.oracle.com/javase/9/docs/api/</javadocs.jdk.url>
      </properties>
    </profile>
    <profile>
      <id>java10</id>
      <activation>
        <jdk>10</jdk>
      </activation>
      <properties>
        <maven.compiler.release>10</maven.compiler.release>
        <javadocs.jdk.url>https://docs.oracle.com/javase/10/docs/api/</javadocs.jdk.url>
      </properties>
    </profile>
    <profile>
      <id>java11</id>
      <activation>
        <jdk>11</jdk>
      </activation>
      <properties>
        <maven.compiler.release>11</maven.compiler.release>
        <javadocs.jdk.url>https://docs.oracle.com/en/java/javase/11/docs/api/</javadocs.jdk.url>
      </properties>
    </profile>
    <!-- Runs code coverage upload on Travis -->
    <profile>
      <id>code-coverage</id>
      <activation>
        <property>
          <name>env.CODACY_API_TOKEN</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>${jacoco.maven.plugin.version}</version>
            <executions>
              <execution>
                <id>default-prepare-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
                <configuration>
                  <destFile>${jacoco.dataFile}</destFile>
                  <propertyName>jacoco.agent.arg</propertyName>
                  <append>true</append>
                </configuration>
              </execution>
              <execution>
                <id>default-prepare-agent-integration</id>
                <goals>
                  <goal>prepare-agent-integration</goal>
                </goals>
                <configuration>
                  <destFile>${jacoco.dataFile}</destFile>
                  <propertyName>jacoco.agent.arg</propertyName>
                  <append>true</append>
                </configuration>
              </execution>
              <execution>
                <id>default-report</id>
                <goals>
                  <goal>report</goal>
                </goals>
                <configuration>
                  <dataFile>${jacoco.dataFile}</dataFile>
                </configuration>
              </execution>
              <execution>
                <id>integration-report</id>
                <goals>
                  <goal>report-integration</goal>
                </goals>
                <configuration>
                  <dataFile>${jacoco.dataFile}</dataFile>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>com.gavinmogan</groupId>
            <artifactId>codacy-maven-plugin</artifactId>
            <version>${codacy.plugin.version}</version>
            <configuration>
              <apiToken>${env.CODACY_API_TOKEN}</apiToken>
              <projectToken>${env.CODACY_PROJECT_TOKEN}</projectToken>
              <coverageReportFile>${project.basedir}/target/site/jacoco/jacoco.xml</coverageReportFile>
              <commit>${env.TRAVIS_COMMIT}</commit>
              <codacyApiBaseUrl>https://api.codacy.com</codacyApiBaseUrl>
              <failOnMissingReportFile>false</failOnMissingReportFile>
            </configuration>
            <executions>
              <execution>
                <id>codacy-upload</id>
                <phase>verify</phase>
                <goals>
                  <goal>coverage</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>${maven.site.plugin.version}</version>
            <configuration>
              <skip>true</skip>
              <skipDeploy>true</skipDeploy>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <!-- The release-sign-artifacts profile allows for the publishing of project artifact -->
    <profile>
      <id>release</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-site-plugin</artifactId>
            <version>${maven.site.plugin.version}</version>
            <configuration>
              <skip>true</skip>
              <skipDeploy>true</skipDeploy>
            </configuration>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <version>${maven.source.plugin.version}</version>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar-no-fork</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <version>${maven.javadoc.plugin.version}</version>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>${gpg.plugin.version}</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>${nexus.staging.plugin.version}</version>
            <extensions>true</extensions>
            <configuration>
              <serverId>sonatype-nexus-staging</serverId>
              <nexusUrl>https://oss.sonatype.org/</nexusUrl>
              <autoReleaseAfterClose>true</autoReleaseAfterClose>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <!-- Bit of stupidity to work around Eclipse's m2e stupidity -->
      <id>only-eclipse</id>
      <activation>
        <property>
          <name>m2e.version</name>
        </property>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <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-dependency-plugin</artifactId>
                        <versionRange>[3.1.0,)</versionRange>
                        <goals>
                          <goal>unpack</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>com.googlecode.maven-download-plugin</groupId>
                        <artifactId>download-maven-plugin</artifactId>
                        <versionRange>[0.0.1,)</versionRange>
                        <goals>
                          <goal>wget</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>info.freelibrary</groupId>
                        <artifactId>freelib-utils</artifactId>
                        <versionRange>[0.0.1,)</versionRange>
                        <goals>
                          <goal>generate-codes</goal>
                          <goal>read-logging-properties</goal>
                          <goal>set-cpumem-properties</goal>
                          <goal>set-uuid-property</goal>
                          <goal>set-file-perms</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>keytool-maven-plugin</artifactId>
                        <versionRange>[0.0.1,)</versionRange>
                        <goals>
                          <goal>generateKeyPair</goal>
                          <goal>generateSecretKey</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>com.github.klieber</groupId>
                        <artifactId>phantomjs-maven-plugin</artifactId>
                        <versionRange>[0.0.1,)</versionRange>
                        <goals>
                          <goal>install</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>nl.geodienstencentrum.maven</groupId>
                        <artifactId>sass-maven-plugin</artifactId>
                        <versionRange>[2.0,)</versionRange>
                        <goals>
                          <goal>update-stylesheets</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-plugin-plugin</artifactId>
                        <versionRange>3.5.2</versionRange>
                        <goals>
                          <goal>descriptor</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>build-helper-maven-plugin</artifactId>
                        <versionRange>[1.0,)</versionRange>
                        <goals>
                          <goal>reserve-network-port</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>exec-maven-plugin</artifactId>
                        <versionRange>[1.0.0,)</versionRange>
                        <goals>
                          <goal>exec</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>com.google.code.maven-replacer-plugin</groupId>
                        <artifactId>replacer</artifactId>
                        <versionRange>[1.4.0,)</versionRange>
                        <goals>
                          <goal>replace</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>com.googlecode.cmake-maven-project</groupId>
                        <artifactId>cmake-maven-plugin</artifactId>
                        <versionRange>[3.7.0,)</versionRange>
                        <goals>
                          <goal>compile</goal>
                          <goal>generate</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-clean-plugin</artifactId>
                        <versionRange>[3.1.0,)</versionRange>
                        <goals>
                          <goal>clean</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                    <pluginExecution>
                      <pluginExecutionFilter>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-pmd-plugin</artifactId>
                        <versionRange>[3.0.0,)</versionRange>
                        <goals>
                          <goal>pmd</goal>
                          <goal>check</goal>
                        </goals>
                      </pluginExecutionFilter>
                      <action>
                        <ignore />
                      </action>
                    </pluginExecution>
                  </pluginExecutions>
                </lifecycleMappingMetadata>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
  </profiles>

  <parent>
    <groupId>info.freelibrary</groupId>
    <artifactId>freelib-build-tools</artifactId>
    <version>3.8.2</version>
  </parent>

</project>

