<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <groupId>zone.dragon</groupId>
    <artifactId>base-pom</artifactId>
    <version>1.2.6-7d6623</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>

    <licenses>
        <license>
            <name>MIT License</name>
            <url>https://github.com/dragonzone/base-pom/blob/master/LICENSE</url>
        </license>
    </licenses>

    <!-- DragonZone -->
    <organization>
        <name>DragonZone</name>
        <url>https://dragon.zone/</url>
    </organization>

    <!-- Developer Info -->
    <developers>
        <developer>
            <id>baharclerode</id>
            <name>Bryan Harclerode</name>
            <email>baharclerode@devdragon.net</email>
            <timezone>-6</timezone>
            <roles>
                <role>developer</role>
            </roles>
        </developer>
    </developers>

    <!-- Modules -->
    <modules>
        <module>base-java-pom</module>
        <module>base-kotlin-pom</module>
        <module>base-wow-pom</module>
    </modules>

    <!-- Global Properties -->
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <deployAtEnd>true</deployAtEnd>
        <!-- Core Plugin Versions -->
        <clean.plugin.version>3.1.0</clean.plugin.version>
        <compiler.plugin.version>3.7.0</compiler.plugin.version>
        <deploy.plugin.version>2.8.2</deploy.plugin.version>
        <failsafe.plugin.version>2.21.0</failsafe.plugin.version>
        <install.plugin.version>2.5.2</install.plugin.version>
        <resources.plugin.version>3.0.2</resources.plugin.version>
        <site.plugin.version>3.7.1</site.plugin.version>
        <surefire.plugin.version>2.21.0</surefire.plugin.version>
        <verifier.plugin.version>1.1</verifier.plugin.version>
        <!-- Packaging Plugin Versions -->
        <ear.plugin.version>2.10.1</ear.plugin.version>
        <ejb.plugin.version>3.0.0</ejb.plugin.version>
        <jar.plugin.version>3.1.0</jar.plugin.version>
        <rar.plugin.version>2.4</rar.plugin.version>
        <war.plugin.version>3.2.0</war.plugin.version>
        <acr.plugin.version>3.0.0</acr.plugin.version>
        <shade.plugin.version>3.1.1</shade.plugin.version>
        <source.plugin.version>3.0.1</source.plugin.version>
        <!-- Reporting Plugin Versions -->
        <changelog.plugin.version>2.3</changelog.plugin.version>
        <changes.plugin.version>2.12.1</changes.plugin.version>
        <checkstyle.plugin.version>3.0.0</checkstyle.plugin.version>
        <doap.plugin.version>1.2</doap.plugin.version>
        <docck.plugin.version>1.1</docck.plugin.version>
        <javadoc.plugin.version>3.0.0</javadoc.plugin.version>
        <jdeps.plugin.version>3.1.1</jdeps.plugin.version>
        <jxr.plugin.version>2.5</jxr.plugin.version>
        <linkcheck.plugin.version>1.2</linkcheck.plugin.version>
        <pmd.plugin.version>3.9.0</pmd.plugin.version>
        <project-info-reports.plugin.version>2.9</project-info-reports.plugin.version>
        <surefire-report.plugin.version>2.21.0</surefire-report.plugin.version>
        <!-- Tool Plugin Versions -->
        <ant.plugin.version>2.4</ant.plugin.version>
        <antrun.plugin.version>1.8</antrun.plugin.version>
        <archetype.plugin.version>3.0.1</archetype.plugin.version>
        <assembly.plugin.version>3.1.0</assembly.plugin.version>
        <dependency.plugin.version>3.1.0</dependency.plugin.version>
        <enforcer.plugin.version>3.0.0-M1</enforcer.plugin.version>
        <gpg.plugin.version>1.6</gpg.plugin.version>
        <help.plugin.version>3.0.1</help.plugin.version>
        <invoker.plugin.version>3.0.1</invoker.plugin.version>
        <jarsigner.plugin.version>1.4</jarsigner.plugin.version>
        <patch.plugin.version>1.2</patch.plugin.version>
        <pdf.plugin.version>1.4</pdf.plugin.version>
        <plugin.plugin.version>3.5.1</plugin.plugin.version>
        <release.plugin.version>2.5.3</release.plugin.version>
        <remote-resources.plugin.version>1.5</remote-resources.plugin.version>
        <repository.plugin.version>2.4</repository.plugin.version>
        <scm.plugin.version>1.9.5</scm.plugin.version>
        <scm-publish.plugin.version>3.0.0</scm-publish.plugin.version>
        <stage.plugin.version>1.0</stage.plugin.version>
        <toolchains.plugin.version>1.1</toolchains.plugin.version>
        <build-helper.plugin.version>1.12</build-helper.plugin.version>
        <buildnumber.plugin.version>1.4</buildnumber.plugin.version>
        <versions.plugin.version>2.3</versions.plugin.version>
        <nexus-staging-maven.plugin.version>1.6.7</nexus-staging-maven.plugin.version>
    </properties>

    <!-- Distribute to the public repositories in the DragonZone Nexus -->
    <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>

    <scm>
        <connection>scm:git:git@github.com:dragonzone/base-pom.git</connection>
        <developerConnection>scm:git:git@github.com:dragonzone/base-pom.git</developerConnection>
        <tag>base-pom-1.2.6</tag>
        <url>https://github.com/dragonzone/base-pom</url>
    </scm>

    <build>
        <pluginManagement>
            <plugins>
                <!-- Core Plugins -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>${clean.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${compiler.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-deploy-plugin</artifactId>
                    <version>${deploy.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${failsafe.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-install-plugin</artifactId>
                    <version>${install.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${resources.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${site.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${surefire.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-verifier-plugin</artifactId>
                    <version>${verifier.plugin.version}</version>
                </plugin>
                <!-- Packaging Plugins -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-ear-plugin</artifactId>
                    <version>${ear.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-ejb-plugin</artifactId>
                    <version>${ejb.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <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>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-rar-plugin</artifactId>
                    <version>${rar.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${war.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-acr-plugin</artifactId>
                    <version>${acr.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>${shade.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <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>
                <!-- Reporting Plugins -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-changelog-plugin</artifactId>
                    <version>${changelog.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-changes-plugin</artifactId>
                    <version>${changes.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${checkstyle.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-doap-plugin</artifactId>
                    <version>${doap.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-docck-plugin</artifactId>
                    <version>${docck.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <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>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jdeps-plugin</artifactId>
                    <version>${jdeps.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jxr-plugin</artifactId>
                    <version>${jxr.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-linkcheck-plugin</artifactId>
                    <version>${linkcheck.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pmd-plugin</artifactId>
                    <version>${pmd.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-project-info-reports-plugin</artifactId>
                    <version>${project-info-reports.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-report-plugin</artifactId>
                    <version>${surefire-report.plugin.version}</version>
                </plugin>
                <!-- Tool Plugins -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-ant-plugin</artifactId>
                    <version>${ant.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>${antrun.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-archetype-plugin</artifactId>
                    <version>${archetype.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>${assembly.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <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>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-enforcer-plugin</artifactId>
                    <version>${enforcer.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>enforce-pom-standards</id>
                            <goals>
                                <goal>enforce</goal>
                            </goals>
                            <configuration>
                                <rules>
                                    <requireUpperBoundDeps />
                                    <banDuplicatePomDependencyVersions />
                                    <reactorModuleConvergence />
                                    <dependencyConvergence />
                                </rules>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-gpg-plugin</artifactId>
                    <version>${gpg.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-help-plugin</artifactId>
                    <version>${help.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-invoker-plugin</artifactId>
                    <version>${invoker.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jarsigner-plugin</artifactId>
                    <version>${jarsigner.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-patch-plugin</artifactId>
                    <version>${patch.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-pdf-plugin</artifactId>
                    <version>${pdf.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-plugin-plugin</artifactId>
                    <version>${plugin.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <version>${release.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-remote-resources-plugin</artifactId>
                    <version>${remote-resources.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-repository-plugin</artifactId>
                    <version>${repository.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-scm-plugin</artifactId>
                    <version>${scm.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-scm-publish-plugin</artifactId>
                    <version>${scm-publish.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-stage-plugin</artifactId>
                    <version>${stage.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-toolchains-plugin</artifactId>
                    <version>${toolchains.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>
                </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>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-enforcer-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-dependency-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>git-project</id>
            <activation>
                <file>
                    <exists>.git/HEAD</exists>
                </file>
            </activation>
            <properties>
                <maven.buildNumber.doCheck>false</maven.buildNumber.doCheck>
                <maven.buildNumber.doUpdate>false</maven.buildNumber.doUpdate>
            </properties>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <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>
                            <revisionOnScmFailure>DEV</revisionOnScmFailure>
                            <shortRevisionLength>8</shortRevisionLength>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </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>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>sign-all</id>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
