<?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>zone.dragon</groupId>
  <artifactId>base-pom</artifactId>
  <version>4.1.3</version>
  <packaging>pom</packaging>
  <name>DragonZone :: Base POM</name>
  <description>POM file for managing DragonZone projects</description>
  <url>https://github.com/dragonzone/base-pom</url>
  <organization>
    <name>DragonZone</name>
    <url>https://dragon.zone/</url>
  </organization>
  <licenses>
    <license>
      <name>MIT License</name>
      <url>https://github.com/dragonzone/base-pom/blob/master/LICENSE</url>
    </license>
  </licenses>
  <developers>
    <developer>
      <id>baharclerode</id>
      <name>Bryan Harclerode</name>
      <email>baharclerode@devdragon.net</email>
      <roles>
        <role>developer</role>
      </roles>
      <timezone>-6</timezone>
    </developer>
  </developers>
  <modules>
    <module>base-java-pom</module>
    <module>base-kotlin-pom</module>
    <module>base-wow-pom</module>
  </modules>
  <scm>
    <connection>scm:git:git@github.com:dragonzone/base-pom.git</connection>
    <developerConnection>scm:git:git@github.com:dragonzone/base-pom.git</developerConnection>
    <url>https://github.com/dragonzone/base-pom</url>
  </scm>
  <distributionManagement>
    <repository>
      <id>dragonZone</id>
      <name>DragonZone Nexus</name>
      <url>https://maven.dragon.zone/repository/maven-releases</url>
    </repository>
    <snapshotRepository>
      <id>dragonZone-snapshots</id>
      <name>DragonZone Nexus (Snapshots)</name>
      <url>https://maven.dragon.zone/repository/maven-snapshots</url>
    </snapshotRepository>
  </distributionManagement>
  <properties>
    <jdeps.plugin.version>3.1.2</jdeps.plugin.version>
    <shade.plugin.version>3.2.4</shade.plugin.version>
    <verifier.plugin.version>1.1</verifier.plugin.version>
    <install.plugin.version>3.0.0-M1</install.plugin.version>
    <source.plugin.version>3.2.1</source.plugin.version>
    <surefire.plugin.version>3.0.0-M5</surefire.plugin.version>
    <jarsigner.plugin.version>3.0.0</jarsigner.plugin.version>
    <wrapper.plugin.version>3.0.1</wrapper.plugin.version>
    <toolchains.plugin.version>3.0.0</toolchains.plugin.version>
    <release.plugin.version>3.0.0-M1</release.plugin.version>
    <flatten-maven-plugin.version>1.2.2</flatten-maven-plugin.version>
    <clean.plugin.version>3.1.0</clean.plugin.version>
    <remote-resources.plugin.version>1.7.0</remote-resources.plugin.version>
    <repository.plugin.version>2.4</repository.plugin.version>
    <failsafe.plugin.version>3.0.0-M5</failsafe.plugin.version>
    <docck.plugin.version>1.1</docck.plugin.version>
    <surefire-report.plugin.version>3.0.0-M5</surefire-report.plugin.version>
    <extra-enforcer-rules.version>1.2</extra-enforcer-rules.version>
    <versions.plugin.version>2.7</versions.plugin.version>
    <changes.plugin.version>2.12.1</changes.plugin.version>
    <compiler.plugin.version>3.8.1</compiler.plugin.version>
    <deploy.plugin.version>3.0.0-M1</deploy.plugin.version>
    <revision>99-SNAPSHOT</revision>
    <enforcer.plugin.version>3.0.0-M3</enforcer.plugin.version>
    <sha1>HEAD</sha1>
    <minimum.maven.version>3.6.3</minimum.maven.version>
    <scm-publish.plugin.version>3.1.0</scm-publish.plugin.version>
    <pdf.plugin.version>1.4</pdf.plugin.version>
    <buildnumber.plugin.version>1.4</buildnumber.plugin.version>
    <jxr.plugin.version>3.0.0</jxr.plugin.version>
    <scm.plugin.version>1.11.2</scm.plugin.version>
    <ant.plugin.version>2.4</ant.plugin.version>
    <plugin.plugin.version>3.6.0</plugin.plugin.version>
    <jdeprscan.plugin.version>3.0.0-alpha-1</jdeprscan.plugin.version>
    <project-info-reports.plugin.version>3.1.1</project-info-reports.plugin.version>
    <help.plugin.version>3.2.0</help.plugin.version>
    <jar.plugin.version>3.2.0</jar.plugin.version>
    <patch.plugin.version>1.2</patch.plugin.version>
    <resources.plugin.version>3.2.0</resources.plugin.version>
    <ejb.plugin.version>3.1.0</ejb.plugin.version>
    <deployAtEnd>true</deployAtEnd>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <antrun.plugin.version>3.0.0</antrun.plugin.version>
    <jmod.plugin.version>3.0.0-alpha-1</jmod.plugin.version>
    <javadoc.plugin.version>3.2.0</javadoc.plugin.version>
    <site.plugin.version>3.9.1</site.plugin.version>
    <rar.plugin.version>2.4</rar.plugin.version>
    <war.plugin.version>3.3.1</war.plugin.version>
    <pmd.plugin.version>3.14.0</pmd.plugin.version>
    <archetype.plugin.version>3.2.0</archetype.plugin.version>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <deployable-pom-maven-plugin.version>1.0.1</deployable-pom-maven-plugin.version>
    <dependency.plugin.version>3.1.2</dependency.plugin.version>
    <invoker.plugin.version>3.2.1</invoker.plugin.version>
    <doap.plugin.version>1.2</doap.plugin.version>
    <linkcheck.plugin.version>1.2</linkcheck.plugin.version>
    <acr.plugin.version>3.1.0</acr.plugin.version>
    <assembly.plugin.version>3.3.0</assembly.plugin.version>
    <jlink.plugin.version>3.1.0</jlink.plugin.version>
    <changelog.plugin.version>2.3</changelog.plugin.version>
    <ear.plugin.version>3.1.0</ear.plugin.version>
    <stage.plugin.version>1.0</stage.plugin.version>
    <checkstyle.plugin.version>3.1.1</checkstyle.plugin.version>
    <nexus-staging-maven.plugin.version>1.6.8</nexus-staging-maven.plugin.version>
    <gpg.plugin.version>1.6</gpg.plugin.version>
    <build-helper.plugin.version>3.0.0</build-helper.plugin.version>
  </properties>
  <repositories>
    <repository>
      <id>ktor</id>
      <url>http://dl.bintray.com/kotlin/ktor</url>
    </repository>
    <repository>
      <id>kotlinx</id>
      <url>http://dl.bintray.com/kotlin/kotlinx</url>
    </repository>
    <repository>
      <id>jcenter</id>
      <url>http://jcenter.bintray.com</url>
    </repository>
  </repositories>
  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>${clean.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>${compiler.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>${deploy.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>${failsafe.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>${install.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>${resources.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>${site.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${surefire.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-verifier-plugin</artifactId>
          <version>${verifier.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-ear-plugin</artifactId>
          <version>${ear.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-ejb-plugin</artifactId>
          <version>${ejb.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>${jar.plugin.version}</version>
          <executions>
            <execution>
              <id>attach-test-jar</id>
              <goals>
                <goal>test-jar</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <skipIfEmpty>true</skipIfEmpty>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <artifactId>maven-jlink-plugin</artifactId>
          <version>${jlink.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-jmod-plugin</artifactId>
          <version>${jmod.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-rar-plugin</artifactId>
          <version>${rar.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-war-plugin</artifactId>
          <version>${war.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-acr-plugin</artifactId>
          <version>${acr.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-shade-plugin</artifactId>
          <version>${shade.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-source-plugin</artifactId>
          <version>${source.plugin.version}</version>
          <executions>
            <execution>
              <id>attach-sources</id>
              <phase>none</phase>
            </execution>
            <execution>
              <id>attach-sources-override</id>
              <goals>
                <goal>jar-no-fork</goal>
              </goals>
            </execution>
            <execution>
              <id>attach-test-sources</id>
              <goals>
                <goal>test-jar-no-fork</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-changelog-plugin</artifactId>
          <version>${changelog.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-changes-plugin</artifactId>
          <version>${changes.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>${checkstyle.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-doap-plugin</artifactId>
          <version>${doap.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-docck-plugin</artifactId>
          <version>${docck.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>${javadoc.plugin.version}</version>
          <executions>
            <execution>
              <id>attach-javadocs</id>
              <goals>
                <goal>jar</goal>
              </goals>
              <configuration>
                <tags>
                  <tag>
                    <name>date</name>
                    <placement>t</placement>
                    <head>Created:</head>
                  </tag>
                </tags>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-jdeps-plugin</artifactId>
          <version>${jdeps.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>${jxr.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-linkcheck-plugin</artifactId>
          <version>${linkcheck.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-pmd-plugin</artifactId>
          <version>${pmd.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${project-info-reports.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>${surefire-report.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-ant-plugin</artifactId>
          <version>${ant.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>${antrun.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-archetype-plugin</artifactId>
          <version>${archetype.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>${assembly.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>${dependency.plugin.version}</version>
          <executions>
            <execution>
              <id>enforce-dependency-declarations</id>
              <goals>
                <goal>analyze-only</goal>
              </goals>
              <configuration>
                <failOnWarning>true</failOnWarning>
                <outputXML>true</outputXML>
                <ignoreNonCompile>true</ignoreNonCompile>
              </configuration>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>${enforcer.plugin.version}</version>
          <executions>
            <execution>
              <id>enforce-pom-standards</id>
              <phase>validate</phase>
              <goals>
                <goal>enforce</goal>
              </goals>
              <configuration>
                <rules>
                  <banCircularDependencies />
                  <banDuplicatePomDependencyVersions />
                  <dependencyConvergence />
                  <reactorModuleConvergence />
                  <requireUpperBoundDeps />
                  <requireJavaVersion>
                    <version>11.0.0</version>
                  </requireJavaVersion>
                  <requireMavenVersion>
                    <version>${minimum.maven.version}</version>
                  </requireMavenVersion>
                  <requireReleaseDeps>
                    <onlyWhenRelease>true</onlyWhenRelease>
                    <message>Snapshot dependencies must be resolved before releasing</message>
                  </requireReleaseDeps>
                </rules>
              </configuration>
            </execution>
          </executions>
          <dependencies>
            <dependency>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>extra-enforcer-rules</artifactId>
              <version>${extra-enforcer-rules.version}</version>
            </dependency>
          </dependencies>
        </plugin>
        <plugin>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>${gpg.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-help-plugin</artifactId>
          <version>${help.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-invoker-plugin</artifactId>
          <version>${invoker.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-jarsigner-plugin</artifactId>
          <version>${jarsigner.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-patch-plugin</artifactId>
          <version>${patch.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-pdf-plugin</artifactId>
          <version>${pdf.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-plugin-plugin</artifactId>
          <version>${plugin.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-release-plugin</artifactId>
          <version>${release.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-remote-resources-plugin</artifactId>
          <version>${remote-resources.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-repository-plugin</artifactId>
          <version>${repository.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-scm-plugin</artifactId>
          <version>${scm.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-scm-publish-plugin</artifactId>
          <version>${scm-publish.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-stage-plugin</artifactId>
          <version>${stage.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-toolchains-plugin</artifactId>
          <version>${toolchains.plugin.version}</version>
        </plugin>
        <plugin>
          <artifactId>maven-wrapper-plugin</artifactId>
          <version>${wrapper.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>${build-helper.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>buildnumber-maven-plugin</artifactId>
          <version>${buildnumber.plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>versions-maven-plugin</artifactId>
          <version>${versions.plugin.version}</version>
          <configuration>
            <generateBackupPoms>false</generateBackupPoms>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.sonatype.plugins</groupId>
          <artifactId>nexus-staging-maven-plugin</artifactId>
          <version>${nexus-staging-maven.plugin.version}</version>
          <configuration>
            <skipRemoteStaging>true</skipRemoteStaging>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>flatten-maven-plugin</artifactId>
          <version>${flatten-maven-plugin.version}</version>
        </plugin>
        <plugin>
          <groupId>zone.dragon.maven.plugin</groupId>
          <artifactId>deployable-pom-maven-plugin</artifactId>
          <version>${deployable-pom-maven-plugin.version}</version>
          <executions>
            <execution>
              <id>create-deployable-pom</id>
              <phase>process-resources</phase>
              <goals>
                <goal>resolve-ci-properties</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <artifactId>maven-enforcer-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-dependency-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>zone.dragon.maven.plugin</groupId>
        <artifactId>deployable-pom-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>git-project</id>
      <activation>
        <file>
          <exists>.git/HEAD</exists>
        </file>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <artifactId>maven-jar-plugin</artifactId>
              <configuration>
                <archive>
                  <manifestEntries>
                    <Implementation-Build>${buildNumber}</Implementation-Build>
                    <Implementation-Branch>${scmBranch}</Implementation-Branch>
                  </manifestEntries>
                </archive>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>buildnumber-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>git-hash</id>
                <phase>initialize</phase>
                <goals>
                  <goal>create</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <getRevisionOnlyOnce>true</getRevisionOnlyOnce>
              <revisionOnScmFailure>DEV</revisionOnScmFailure>
              <shortRevisionLength>8</shortRevisionLength>
            </configuration>
          </plugin>
        </plugins>
      </build>
      <properties>
        <maven.buildNumber.doUpdate>false</maven.buildNumber.doUpdate>
        <maven.buildNumber.doCheck>false</maven.buildNumber.doCheck>
      </properties>
    </profile>
    <profile>
      <id>maven-central</id>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.sonatype.plugins</groupId>
              <artifactId>nexus-staging-maven-plugin</artifactId>
              <configuration>
                <serverId>sonatype-nexus</serverId>
                <nexusUrl>https://oss.sonatype.org/</nexusUrl>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>sign</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-all</id>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>
