<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2015 BSI Business Systems Integration AG.
  All rights reserved. This program and the accompanying materials
  are made available under the terms of the Eclipse Public License v1.0
  which accompanies this distribution, and is available at
  http://www.eclipse.org/legal/epl-v10.html

  Contributors:
  BSI Business Systems Integration AG - initial API and implementation
-->
<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>

  <parent>
    <groupId>org.eclipse.scout</groupId>
    <artifactId>maven_plugin_version-master</artifactId>
    <version>3.12.6-SNAPSHOT</version>
    <relativePath>../maven_plugin_version-master</relativePath>
  </parent>

  <artifactId>maven_plugin_config-master</artifactId>
  <packaging>pom</packaging>
  <name>Maven Master Plugin Build Configuration - General</name>

  <properties>
    <jdk.min.version>1.8</jdk.min.version>
    <jdk.source.version>1.8</jdk.source.version>
    <maven.compiler.source>${jdk.source.version}</maven.compiler.source>
    <maven.compiler.target>${jdk.source.version}</maven.compiler.target>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <maven.build.timestamp.format>yyyyMMdd-HHmmss</maven.build.timestamp.format>
    <maven.min.version>3.5.3</maven.min.version>
    <maven.api.version>3.5.3</maven.api.version>

    <master_deployAtEnd>true</master_deployAtEnd>
    <master_sanityCheck_skip>false</master_sanityCheck_skip>
    <master_signatureCheck_skip>${master_sanityCheck_skip}</master_signatureCheck_skip>
    <master_enforcerCheck_skip>${master_sanityCheck_skip}</master_enforcerCheck_skip>

    <!-- Test Control -->
    <master_unitTest_skip>false</master_unitTest_skip>
    <master_unitTest_failureIgnore>true</master_unitTest_failureIgnore>
    <master_webTest_skip>false</master_webTest_skip>
    <master_coverage_skip>false</master_coverage_skip>

    <!-- Git Information Control -->
    <master_git-id_skip>false</master_git-id_skip>
    <master_git-id_failNoGit>false</master_git-id_failNoGit>
    <master_git-id_useNative>false</master_git-id_useNative>

    <!-- Surefire/Failsafe Fork/Order/Config Control -->
    <master_coverage_jacoco_destFile>${basedir}/../target/jacoco-all.exec</master_coverage_jacoco_destFile>
    <!-- https://maven.apache.org/surefire/maven-surefire-plugin/test-mojo.html#runOrder -->
    <master_test_runOrder>hourly</master_test_runOrder>
    <master_test_forkCount>0.5C</master_test_forkCount>
    <master_test_reuseVm>true</master_test_reuseVm>
    <master_test_timeout>300</master_test_timeout>
    <master_test_jvmMemory>-Xms512m -Xmx2048m</master_test_jvmMemory>
    <master_test_remoteDebugPort>8000</master_test_remoteDebugPort>
    <master_test_debugArgLine>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:${master_test_remoteDebugPort}</master_test_debugArgLine>
    <master_test_argLine>${master_test_jacocoArgLine} ${master_test_jvmMemory}
      -Dfile.encoding=${project.build.sourceEncoding}</master_test_argLine>

    <!-- Javadoc Control -->
    <master_javadoc_opts></master_javadoc_opts>
  </properties>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <configuration>
            <encoding>${project.build.sourceEncoding}</encoding>
            <!--
              The delimiter will be used if subprojects set the <filtering> tag to true.
              It specifies the form for properties to be replaced.
            -->
            <delimiters>
              <delimiter>${*}</delimiter>
            </delimiters>
            <nonFilteredFileExtensions>
              <nonFilteredFileExtension>ico</nonFilteredFileExtension>
              <nonFilteredFileExtension>png</nonFilteredFileExtension>
              <nonFilteredFileExtension>tif</nonFilteredFileExtension>
              <nonFilteredFileExtension>tiff</nonFilteredFileExtension>
              <nonFilteredFileExtension>jpg</nonFilteredFileExtension>
              <nonFilteredFileExtension>jpeg</nonFilteredFileExtension>
              <nonFilteredFileExtension>pdf</nonFilteredFileExtension>
              <nonFilteredFileExtension>jar</nonFilteredFileExtension>
              <!-- office documents -->
              <nonFilteredFileExtension>doc</nonFilteredFileExtension>
              <nonFilteredFileExtension>docx</nonFilteredFileExtension>
              <nonFilteredFileExtension>xls</nonFilteredFileExtension>
              <nonFilteredFileExtension>xlsx</nonFilteredFileExtension>
              <!-- font files -->
              <nonFilteredFileExtension>woff</nonFilteredFileExtension>
              <nonFilteredFileExtension>woff2</nonFilteredFileExtension>
              <nonFilteredFileExtension>otf</nonFilteredFileExtension>
              <nonFilteredFileExtension>ttf</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <compilerId>jdt</compilerId>
            <source>${jdk.source.version}</source>
            <target>${jdk.source.version}</target>
            <encoding>${project.build.sourceEncoding}</encoding>
            <showWarnings>true</showWarnings>
            <compilerArgs>
              <arg>-proc:none</arg>
            </compilerArgs>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.tycho</groupId>
              <artifactId>tycho-compiler-jdt</artifactId>
              <version>${master_dependency_tycho-compiler_version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <failIfNoTests>false</failIfNoTests>
            <testFailureIgnore>${master_unitTest_failureIgnore}</testFailureIgnore>
            <skipTests>${master_unitTest_skip}</skipTests>
            <trimStackTrace>false</trimStackTrace>
            <!-- inject debug arguments (triggered by system property debugTests from jenkins) -->
            <argLine>${master_test_argLine}</argLine>
            <systemPropertyVariables>
              <sun.jnu.encoding>${project.build.sourceEncoding}</sun.jnu.encoding>
              <java.awt.headless>true</java.awt.headless>
              <java.util.logging.SimpleFormatter.format>%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %5$s%6$s%n</java.util.logging.SimpleFormatter.format>
              <!-- Inherit proxy settings of parent process when forking -->
              <http.proxyHost>${http.proxyHost}</http.proxyHost>
              <http.proxyPort>${http.proxyPort}</http.proxyPort>
              <http.nonProxyHosts>${http.nonProxyHosts}</http.nonProxyHosts>
              <https.proxyHost>${https.proxyHost}</https.proxyHost>
              <https.proxyPort>${https.proxyPort}</https.proxyPort>
              <ftp.proxyHost>${ftp.proxyHost}</ftp.proxyHost>
              <ftp.proxyPort>${ftp.proxyPort}</ftp.proxyPort>
              <ftp.nonProxyHosts>${ftp.nonProxyHosts}</ftp.nonProxyHosts>
            </systemPropertyVariables>
            <runOrder>${master_test_runOrder}</runOrder>
            <forkCount>${master_test_forkCount}</forkCount>
            <reuseForks>${master_test_reuseVm}</reuseForks>
            <forkedProcessTimeoutInSeconds>${master_test_timeout}</forkedProcessTimeoutInSeconds>
            <useManifestOnlyJar>false</useManifestOnlyJar>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <configuration>
            <failIfNoTests>false</failIfNoTests>
            <testFailureIgnore>${master_unitTest_failureIgnore}</testFailureIgnore>
            <skipTests>${master_unitTest_skip}</skipTests>
            <!-- inject debug arguments (triggered by system property debugTests from jenkins) -->
            <argLine>${master_test_argLine}</argLine>
            <systemPropertyVariables>
              <sun.jnu.encoding>${project.build.sourceEncoding}</sun.jnu.encoding>
              <java.awt.headless>true</java.awt.headless>
              <java.util.logging.SimpleFormatter.format>%1$tY-%1$tm-%1$td %1$tH:%1$tM:%1$tS %4$s %5$s%6$s%n</java.util.logging.SimpleFormatter.format>
            </systemPropertyVariables>
            <runOrder>${master_test_runOrder}</runOrder>
            <!-- failsafe must be forked into its own process in order to enable jacoco's java agent -->
            <forkCount>${master_test_forkCount}</forkCount>
            <reuseForks>${master_test_reuseVm}</reuseForks>
            <forkedProcessTimeoutInSeconds>${master_test_timeout}</forkedProcessTimeoutInSeconds>
            <useManifestOnlyJar>false</useManifestOnlyJar>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <configuration>
            <overWriteReleases>false</overWriteReleases>
            <overWriteSnapshots>true</overWriteSnapshots>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <configuration>
            <deployAtEnd>${master_deployAtEnd}</deployAtEnd>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <autoVersionSubmodules>true</autoVersionSubmodules>
            <tagNameFormat>${master_release_tagName}</tagNameFormat>
            <addSchema>true</addSchema>
            <detail>true</detail>
            <indentSize>2</indentSize>
            <localCheckout>true</localCheckout>
            <pushChanges>${master_release_pushChanges}</pushChanges>
            <arguments>${arguments} --batch-mode -Drelease-build</arguments>
            <useReleaseProfile>false</useReleaseProfile>
            <goals>install</goals>
          </configuration>
        </plugin>

        <plugin>
          <groupId>pl.project13.maven</groupId>
          <artifactId>git-commit-id-plugin</artifactId>
          <executions>
            <execution>
              <id>default</id>
              <goals>
                <goal>revision</goal>
              </goals>
              <phase>initialize</phase>
              <configuration>
                <dateFormat>yyyy-MM-dd'T'HH:mm:ssZZ</dateFormat>
                <generateGitPropertiesFile>false</generateGitPropertiesFile>
                <skipPoms>true</skipPoms>
                <failOnNoGitDirectory>${master_git-id_failNoGit}</failOnNoGitDirectory>
                <skip>${master_git-id_skip}</skip>
                <useNativeGit>${master_git-id_useNative}</useNativeGit>
                <abbrevLength>10</abbrevLength>
                <gitDescribe>
                  <always>true</always>
                  <abbrev>7</abbrev>
                  <dirty>-dirty</dirty>
                  <forceLongFormat>false</forceLongFormat>
                  <tags>true</tags>
                </gitDescribe>
              </configuration>
            </execution>
          </executions>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
                <addClasspath>false</addClasspath>
              </manifest>
              <manifestSections combine.children="append">
                <manifestSection>
                  <name>${project.groupId}:${project.artifactId}</name>
                  <manifestEntries>
                    <!-- This is actually the time when the build was done -->
                    <Build-Time>${git.build.time}</Build-Time>
                    <!-- Git specific properties -->
                    <Git-Branch>${git.branch}</Git-Branch>
                    <Git-Commit-Id>${git.commit.id}</Git-Commit-Id>
                    <Git-Commit-Id-Describe>${git.commit.id.describe}</Git-Commit-Id-Describe>
                    <Git-Remote-Origin-Url>${git.remote.origin.url}</Git-Remote-Origin-Url>
                    <!-- project information -->
                    <Project-ArtifactId>${project.artifactId}</Project-ArtifactId>
                    <Project-GroupId>${project.groupId}</Project-GroupId>
                    <Project-Name>${project.name}</Project-Name>
                    <Project-Version>${project.version}</Project-Version>
                  </manifestEntries>
                </manifestSection>
              </manifestSections>
            </archive>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <configuration>
            <nonFilteredFileExtensions>
              <nonFilteredFileExtension>jar</nonFilteredFileExtension>
            </nonFilteredFileExtensions>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.basepom.maven</groupId>
          <artifactId>duplicate-finder-maven-plugin</artifactId>
          <configuration>
            <skip>${master_sanityCheck_skip}</skip>
            <printEqualFiles>false</printEqualFiles>
            <failBuildInCaseOfConflict>true</failBuildInCaseOfConflict>
            <failBuildInCaseOfDifferentContentConflict>true</failBuildInCaseOfDifferentContentConflict>
            <failBuildInCaseOfEqualContentConflict>true</failBuildInCaseOfEqualContentConflict>
            <checkCompileClasspath>true</checkCompileClasspath>
            <checkRuntimeClasspath>true</checkRuntimeClasspath>
            <checkTestClasspath>true</checkTestClasspath>
            <quiet>false</quiet>
            <preferLocal>true</preferLocal>
            <useResultFile>false</useResultFile>
            <includePomProjects>true</includePomProjects>
            <ignoredResourcePatterns>
              <ignoredResourcePattern>.*ico$</ignoredResourcePattern>
              <ignoredResourcePattern>.*jpg$</ignoredResourcePattern>
              <ignoredResourcePattern>.*jpeg$</ignoredResourcePattern>
              <ignoredResourcePattern>.*png$</ignoredResourcePattern>
              <ignoredResourcePattern>.*gif$</ignoredResourcePattern>
              <ignoredResourcePattern>.*html$</ignoredResourcePattern>
              <ignoredResourcePattern>.*htm$</ignoredResourcePattern>
              <ignoredResourcePattern>.*xml$</ignoredResourcePattern>
              <ignoredResourcePattern>.*txt$</ignoredResourcePattern>
              <ignoredResourcePattern>.*.api_description$</ignoredResourcePattern>
              <ignoredResourcePattern>.*options$</ignoredResourcePattern>
              <ignoredResourcePattern>.*properties$</ignoredResourcePattern>
              <ignoredResourcePattern>.*gitkeep$</ignoredResourcePattern>
              <ignoredResourcePattern>.*sql$</ignoredResourcePattern>
              <ignoredResourcePattern>.*xjb$</ignoredResourcePattern>
              <ignoredResourcePattern>.*exsd$</ignoredResourcePattern>
              <ignoredResourcePattern>.*about.ini$</ignoredResourcePattern>
              <ignoredResourcePattern>.*file-list$</ignoredResourcePattern>
            </ignoredResourcePatterns>
            <ignoredClassPatterns>
              <ignoredClassPattern>.*module-info.*</ignoredClassPattern>
            </ignoredClassPatterns>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <configuration>
            <skip>${master_coverage_skip}</skip>
            <destFile>${master_coverage_jacoco_destFile}</destFile>
            <propertyName>master_test_jacocoArgLine</propertyName>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>animal-sniffer-maven-plugin</artifactId>
          <configuration>
            <signature>
              <groupId>org.codehaus.mojo.signature</groupId>
              <artifactId>java18</artifactId>
              <version>1.0</version>
            </signature>
            <skip>${master_signatureCheck_skip}</skip>
          </configuration>
        </plugin>

        <plugin>
          <groupId>com.mycila</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <configuration>
            <header>${project.basedir}/../license_files/copyright.txt</header>
            <headerDefinitions>
              <headerDefinition>${project.basedir}/../license_files/scoutLicenceHeaderJava.xml</headerDefinition>
            </headerDefinitions>
            <failIfMissing>true</failIfMissing>
            <strictCheck>true</strictCheck>
            <aggregate>true</aggregate>
            <useDefaultExcludes>false</useDefaultExcludes>
            <includes>
              <include>**/pom.xml</include>
              <include>**/*.properties</include>
              <include>**/*.java</include>
              <include>**/*.js</include>
              <include>**/*.css</include>
              <include>**/*.less</include>
              <include>**/*.xml</include>
              <include>**/*.xsd</include>
            </includes>
            <excludes>
              <exclude>**/target/**</exclude>
              <exclude>**/node_modules/**</exclude>
              <exclude>**/test-results/**</exclude>
              <exclude>**/dist/**</exclude>
              <exclude>**/.*</exclude>
              <exclude>**/.settings/**</exclude>
              <exclude>**/release.properties</exclude>
              <exclude>**/pom.xml.releaseBackup</exclude>
              <exclude>**/*.sh</exclude>
              <exclude>**/src/main/resources/WebContent/**</exclude>
              <exclude>**/src/main/ws-stub/**</exclude>
            </excludes>
            <mapping>
              <java>SCOUT_JAVADOC_STYLE</java>
              <js>SCOUT_JAVADOC_STYLE</js>
              <less>SCOUT_JAVADOC_STYLE</less>
              <css>SCOUT_JAVADOC_STYLE</css>
            </mapping>
            <skip>${master_sanityCheck_skip}</skip>
          </configuration>
          <dependencies>
            <dependency>
              <groupId>com.mycila</groupId>
              <artifactId>license-maven-plugin-git</artifactId>
              <!-- make sure you use the same version as license-maven-plugin -->
              <version>${master_plugin_license_version}</version>
            </dependency>
          </dependencies>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <configuration>
            <skip>${master_enforcerCheck_skip}</skip>
            <rules>
              <requirePluginVersions>
                <message>Build reproducibility : always define plugin versions</message>
                <banLatest>true</banLatest>
                <banRelease>true</banRelease>
                <phases>clean,deploy</phases>
                <unCheckedPluginList>org.apache.maven.plugins:maven-deploy-plugin</unCheckedPluginList>
              </requirePluginVersions>
              <requireReleaseDeps>
                <message>No SNAPSHOT versions allowed for dependencies</message>
                <onlyWhenRelease>true</onlyWhenRelease>
              </requireReleaseDeps>
              <requireJavaVersion>
                <message>To build this project JDK ${jdk.min.version} (or upper) is required. Please install it.</message>
                <version>${jdk.min.version}</version>
              </requireJavaVersion>
              <requireMavenVersion>
                <message>To build this project Maven ${maven.min.version} (or upper) is required. Please install it.</message>
                <version>${maven.min.version}</version>
              </requireMavenVersion>
              <bannedDependencies>
                <message>commons-beanutils:commons-beanutils should be used instead</message>
                <excludes>
                  <exclude>commons-beanutils:commons-beanutils-core</exclude>
                </excludes>
                <searchTransitive>true</searchTransitive>
              </bannedDependencies>
              <banDuplicatePomDependencyVersions></banDuplicatePomDependencyVersions>
              <!-- can't be used until html ui in eclipse repo and of the tools-build
                <reactorModuleConvergence /> -->
              <requireSameVersions>
                <dependencies>
                  <dependency>org.eclipse.scout</dependency>
                  <dependency>org.eclipse.scout.rt</dependency>
                </dependencies>
              </requireSameVersions>
              <requireSameVersions>
                <dependencies>
                  <dependency>org.eclipse.jetty</dependency>
                </dependencies>
              </requireSameVersions>
            </rules>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.eclipse.scout</groupId>
          <artifactId>eclipse-settings-maven-plugin</artifactId>
          <dependencies>
            <dependency>
              <groupId>org.eclipse.scout</groupId>
              <artifactId>eclipse-settings_master</artifactId>
              <version>${master_dependency_eclipseSettings_master_version}</version>
            </dependency>
          </dependencies>
          <configuration>
            <additionalConfig>
              <file>
                <name>.settings/.jsdtscope</name>
                <location>/.jsdtscope</location>
              </file>
              <file>
                <name>.settings/com.eclipsesource.jshint.ui.prefs</name>
                <location>/com.eclipsesource.jshint.ui.prefs</location>
              </file>
              <file>
                <name>.settings/de.loskutov.anyedit.AnyEditTools.prefs</name>
                <location>/de.loskutov.anyedit.AnyEditTools.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.core.resources.prefs</name>
                <location>/org.eclipse.core.resources.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.core.runtime.prefs</name>
                <location>/org.eclipse.core.runtime.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.jdt.core.prefs</name>
                <location>/org.eclipse.jdt.core.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.jdt.launching.prefs</name>
                <location>/org.eclipse.jdt.launching.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.jdt.ui.prefs</name>
                <location>/org.eclipse.jdt.ui.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.m2e.core.prefs</name>
                <location>/org.eclipse.m2e.core.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.html.core.prefs</name>
                <location>/org.eclipse.wst.html.core.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.core.prefs</name>
                <location>/org.eclipse.wst.jsdt.core.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.ui.prefs</name>
                <location>/org.eclipse.wst.jsdt.ui.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.ui.superType.container</name>
                <location>/org.eclipse.wst.jsdt.ui.superType.container</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.jsdt.ui.superType.name</name>
                <location>/org.eclipse.wst.jsdt.ui.superType.name</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.validation.prefs</name>
                <location>/org.eclipse.wst.validation.prefs</location>
              </file>
              <file>
                <name>.settings/org.eclipse.wst.xml.core.prefs</name>
                <location>/org.eclipse.wst.xml.core.prefs</location>
              </file>
            </additionalConfig>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <failOnError>false</failOnError>
            <source>${jdk.source.version}</source>
            <encoding>${project.build.sourceEncoding}</encoding>
            <additionalOptions>${master_javadoc_opts}</additionalOptions>
            <doclint>none</doclint>
          </configuration>
        </plugin>

        <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. -->
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>flatten-maven-plugin</artifactId>
                    <versionRange>[${master_plugin_flatten_version},)</versionRange>
                    <goals>
                      <goal>flatten</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>pl.project13.maven</groupId>
                    <artifactId>git-commit-id-plugin</artifactId>
                    <versionRange>[${master_plugin_git-commit-id_version},)</versionRange>
                    <goals>
                      <goal>revision</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore></ignore>
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <!-- Always build a jar with the test classes -->
          <execution>
            <id>attach-tests</id>
            <goals>
              <goal>test-jar</goal>
            </goals>
            <phase>package</phase>
            <configuration>
              <skipIfEmpty>true</skipIfEmpty>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.basepom.maven</groupId>
        <artifactId>duplicate-finder-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>default</id>
            <goals>
              <goal>check</goal>
            </goals>
            <phase>verify</phase>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-rules</id>
            <goals>
              <goal>enforce</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>

      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>default</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
            <phase>initialize</phase>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-sources</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>
    </plugins>
  </build>

  <profiles>
    <profile>
      <!--
      run security check on all dependencies using owasp dependency check
      https://jeremylong.github.io/DependencyCheck/dependency-check-maven/
      https://jeremylong.github.io/DependencyCheck/dependency-check-cli/arguments.html
      https://jeremylong.github.io/DependencyCheck/general/internals.html
      -->
      <id>security.check</id>
      <activation>
        <property>
          <name>securityCheck</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-maven</artifactId>
            <configuration>
              <formats>
                <format>html</format>
                <format>xml</format>
              </formats>
              <skipTestScope>true</skipTestScope>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>aggregate</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- disable all tests -->
      <id>skipTests</id>
      <activation>
        <property>
          <name>skipTests</name>
        </property>
      </activation>
      <properties>
        <master_unitTest_skip>true</master_unitTest_skip>
        <master_webTest_skip>true</master_webTest_skip>
        <master_coverage_skip>true</master_coverage_skip>
      </properties>
    </profile>

    <profile>
      <!-- skip checks for faster development-build -->
      <id>dev</id>
      <properties>
        <master_sanityCheck_skip>true</master_sanityCheck_skip>
        <master_coverage_skip>true</master_coverage_skip>
      </properties>
    </profile>

    <profile>
      <!-- remote debug tests -->
      <id>debug</id>
      <activation>
        <property>
          <name>debugTests</name>
        </property>
      </activation>
      <properties>
        <master_test_argLine>${master_test_jacocoArgLine} ${master_test_jvmMemory} ${master_test_debugArgLine}
          -Dfile.encoding=${project.build.sourceEncoding}</master_test_argLine>
        <master_test_forkCount>1</master_test_forkCount>
      </properties>
    </profile>

    <profile>
      <!-- check copyright/license headers -->
      <id>license_check</id>
      <activation>
        <property>
          <name>license_check</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>com.mycila</groupId>
            <artifactId>license-maven-plugin</artifactId>
            <inherited>false</inherited>
            <executions>
              <execution>
                <id>enforce-license-headers</id>
                <goals>
                  <goal>check</goal>
                </goals>
                <phase>validate</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- make a release build. includes javadoc... -->
      <id>release</id>
      <activation>
        <property>
          <name>release-build</name>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- Add the jdt.core.prefs compiler argument only if the file exists -->
      <id>use-jdt-core-prefs-file</id>
      <activation>
        <file>
          <exists>${basedir}/.settings/org.eclipse.jdt.core.prefs</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
              <compilerArguments>
                <properties>${project.basedir}/.settings/org.eclipse.jdt.core.prefs</properties>
              </compilerArguments>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>enforce-java-api-compatibility-profile</id>
      <activation>
        <jdk>1.8</jdk>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>animal-sniffer-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-java-api-compatibility</id>
                <goals>
                  <goal>check</goal>
                </goals>
                <phase>verify</phase>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>
</project>
