<?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/maven-v4_0_0.xsd">

  <modelVersion>4.0.0</modelVersion>

  <groupId>de.gedoplan</groupId>
  <artifactId>build-master</artifactId>
  <version>2026.6.2</version>

  <packaging>pom</packaging>

  <name>${project.groupId}:${project.artifactId}</name>
  <description>Base POM for all GEDOPLAN projects</description>
  <url>https://wiki.gedoplan.de/bin/view/Projekte/Maven%20Parents/#Hde.gedoplan:build-master</url>

  <developers>
    <developer>
      <name>Dirk Weil</name>
      <email>dirk.weil@gedoplan.de</email>
      <organization>GEDOPLAN GmbH</organization>
      <organizationUrl>https://www.gedoplan.de</organizationUrl>
    </developer>
  </developers>

  <licenses>
    <license>
      <name>The Apache License, Version 2.0</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>

  <scm>
    <connection>scm:git:https://git.gedoplan.de/gp-libraries/build-master.git</connection>
    <developerConnection>scm:git:https://git.gedoplan.de/gp-libraries/build-master.git</developerConnection>
    <url>https://git.gedoplan.de/gp-libraries/build-master</url>
  </scm>

  <properties>
    <!-- Benötigte Maven-Version (Achtung: Range!) -->
    <required.maven.version>[3.9.12,4)</required.maven.version>

    <!-- Java-Version als Minimum für die Build-Umgebung und als Source- und Target-Version -->
    <java.code.version>17</java.code.version>

    <!-- Davon abgeleitete Versionen für die Build-Umgebung sowie Source und Target -->
    <required.java.version>[${java.code.version},)</required.java.version>
    <maven.compiler.release>${java.code.version}</maven.compiler.release>
    <maven.compiler.source>${java.code.version}</maven.compiler.source>
    <maven.compiler.target>${java.code.version}</maven.compiler.target>

    <!-- Metadaten für Reflection von Methoden-Parametern generieren -->
    <maven.compiler.parameters>true</maven.compiler.parameters>

    <!-- Encoding für Sourcecode und Ressourcen -->
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

    <!-- Encoding für Properties-Files -->
    <!-- Achtung: 
        - Bis Java 8 sind Propertes-Files in ISO-8859-1 kodiert. 
        - Seit Java 9 sind Properties-Files in Resource Bundles UTF-8-kodiert.
        - Wir nehmen hier an, dass diesem Irrsinn ein Ende gemacht wird und alles UTF-8 ist.
        - Sollte ein Projekt explizit ISO-8859-1 benötigen, muss die folgende Property darauf gesetzt
    werden.
      -->
    <propertiesEncoding>${project.build.sourceEncoding}</propertiesEncoding>

    <!-- Flag: keine Erzeugung eines Source-JAR -->
    <source.skip>true</source.skip>

    <!-- Version für Technologien, Frameworks oder Plugins -->
    <ear.earVersion>8</ear.earVersion>

    <!-- JPA-Metamodell-Generator -->
    <!-- Achtung: Vor Java 17 wird jpamodelgen eingesetzt - s. Profil unten -->
    <jpamodelgen.groupId>org.hibernate.orm</jpamodelgen.groupId>
    <jpamodelgen.artifactId>hibernate-processor</jpamodelgen.artifactId>
    <jpamodelgen.version>7.1.3.Final</jpamodelgen.version>


    <!-- QueryDSL-Metamodell-Generator -->
    <querydsl.groupId>com.querydsl</querydsl.groupId>
    <querydsl.jpa.artifactId>querydsl-jpa</querydsl.jpa.artifactId>
    <querydsl.apt.artifactId>querydsl-apt</querydsl.apt.artifactId>
    <querydsl.version>5.1.0</querydsl.version> <!-- com.querydsl:querydsl-apt und
    com.querydsl:querydsl-jpa -->
    <querydsl.classifier></querydsl.classifier> <!-- Für neue Pakete (jakarta.*) auf jakarta setzen -->
    <querydsl.apt.classifier>jpa</querydsl.apt.classifier> <!-- Für neue Pakete (jakarta.*) auf
    jakarta setzen -->

    <!-- Zielverzeichnis für durch Annotation Processing generierte Sourcen -->
    <generatedsrc.apt.dir>target/generated-sources/annotations</generatedsrc.apt.dir>

    <!-- Flag: Überspringen der Testausführung -->
    <skipTests>true</skipTests>

    <!-- URLs für Maven-Repositories -->
    <nexusHttps>https://maven.gedoplan.de</nexusHttps>
    <mvnRepoUrl.gedoplanPublic>${nexusHttps}/repository/maven-public</mvnRepoUrl.gedoplanPublic>
    <mvnRepoDeployUrl.gedoplanPublic>${nexusHttps}/repository/maven-public</mvnRepoDeployUrl.gedoplanPublic>
    <mvnRepoDeployUrl.gedoplanPrivate>${nexusHttps}/repository/maven-gedoplan-public</mvnRepoDeployUrl.gedoplanPrivate>

    <!-- Flag: Skip deployment (changed in deploy profile) -->
    <maven.deploy.skip>true</maven.deploy.skip>
    <skipPublishing>true</skipPublishing>

    <!-- Version der Tool-Konfiguration de.gedoplan:tool-config -->
    <tool.config.version>2020.9.2</tool.config.version>

    <!-- Checkstyle-Rules, kommen per Default aus de.gedoplan:tool-config, es kann aber auch ein
    Dateipfad angegeben werden -->
    <checkstyle.config.location>GEDOPLAN_checks.xml</checkstyle.config.location>

    <!-- Konfiguration des gitflow-Plugins -->
    <!-- All -finish goals and gitflow:release have skipTestProject parameter which controls whether
    Maven test goal will be called before merging branches. The default value is false (i.e. the
    project will be tested before merging branches). -->
    <gitflow.skipTestProject>false</gitflow.skipTestProject>

    <!-- All release goals have allowSnapshots parameter which controls whether SNAPSHOT
    dependencies are allowed. The default value is false (i.e. build fails if there SNAPSHOT
    dependency in project). -->
    <gitflow.allowSnapshots>false</gitflow.allowSnapshots>

    <!-- The gitflow:release-finish and gitflow:release goals have digitsOnlyDevVersion parameter
    which will remove qualifiers from the next development version if set to true. For example, if
    the release version is 1.0.0-Final then development version will be 1.0.1-SNAPSHOT. 
    The default value is false (i.e. qualifiers will be preserved in next development version). -->
    <gitflow.digitsOnlyDevVersion>true</gitflow.digitsOnlyDevVersion>

    <!-- Branch names / prefixes; use the same names for productionBranch and developmentBranch in
    order to use a branch model like GitHub Flow -->
    <gitflow.productionBranch>master</gitflow.productionBranch>
    <gitflow.developmentBranch>develop</gitflow.developmentBranch>
    <gitflow.featureBranchPrefix>feature/</gitflow.featureBranchPrefix>
    <gitflow.releaseBranchPrefix>release/</gitflow.releaseBranchPrefix>
    <gitflow.hotfixBranchPrefix>hotfix/</gitflow.hotfixBranchPrefix>
    <gitflow.supportBranchPrefix>support/</gitflow.supportBranchPrefix>
    <gitflow.versionTagPrefix></gitflow.versionTagPrefix>

    <!-- Name of upstream repo -->
    <gitflow.origin>origin</gitflow.origin>

    <dollar>$</dollar>
  </properties>

  <repositories>
    <repository>
      <id>gedoplanPublic</id>
      <url>${mvnRepoUrl.gedoplanPublic}</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>gedoplanPublic</id>
      <url>${mvnRepoUrl.gedoplanPublic}</url>
    </pluginRepository>
  </pluginRepositories>

  <build>

    <defaultGoal>install</defaultGoal>

    <pluginManagement>

      <plugins>

        <!-- Liste alphabetisch sortiert über Plugin-Artefakt-ID -->

        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>3.6.1</version>
        </plugin>

        <plugin>
          <groupId>io.fabric8</groupId>
          <artifactId>docker-maven-plugin</artifactId>
          <version>0.47.0</version>
        </plugin>

        <plugin>
          <groupId>com.amashchenko.maven.plugin</groupId>
          <artifactId>gitflow-maven-plugin</artifactId>
          <version>1.21.0</version>
        </plugin>

        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>0.8.14</version>
        </plugin>

        <plugin>
          <groupId>com.google.cloud.tools</groupId>
          <artifactId>jib-maven-plugin</artifactId>
          <version>3.5.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <version>3.6.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.5.0</version>
        </plugin>

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

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>3.9.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>3.1.4</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ear-plugin</artifactId>
          <version>3.4.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.10</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ejb-plugin</artifactId>
          <version>3.2.1</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-enforcer-plugin</artifactId>
          <version>3.6.2</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>3.5.4</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-install-plugin</artifactId>
          <version>3.1.4</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.5.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <version>3.12.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-gpg-plugin</artifactId>
          <version>3.2.8</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-rar-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>

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

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-source-plugin</artifactId>
          <version>3.3.1</version>
        </plugin>

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

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-toolchains-plugin</artifactId>
          <version>3.2.0</version>
        </plugin>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.5.0</version>
        </plugin>

        <!-- Plugin zur Speicherung der Einstellungen von Eclipse m2e -->
        <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>[2.1,)</versionRange>
                    <goals>
                      <goal>copy</goal>
                      <goal>copy-dependencies</goal>
                      <goal>properties</goal>
                      <goal>unpack</goal>
                      <goal>unpack-dependencies</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <versionRange>[1.7,)</versionRange>
                    <goals>
                      <goal>run</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-toolchains-plugin</artifactId>
                    <versionRange>[1.0,)</versionRange>
                    <goals>
                      <goal>toolchain</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>

      </plugins>

    </pluginManagement>

    <plugins>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <!-- Incremental Compilation abschalten wegen Fehler in Java 8 -->
          <useIncrementalCompilation>false</useIncrementalCompilation>
          <!-- Zielverzeichnis für Annotation Processing -->
          <generatedSourcesDirectory>${generatedsrc.apt.dir}</generatedSourcesDirectory>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <quiet>true</quiet>
          <use>false</use>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-checkstyle-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <excludes>**/target/**</excludes>
          <linkXRef>false</linkXRef>
        </configuration>
        <dependencies>
          <!-- Rules Files sind per Default Classpath Ressources aus dieser Dependency -->
          <dependency>
            <groupId>de.gedoplan</groupId>
            <artifactId>tool-config</artifactId>
            <version>${tool.config.version}</version>
          </dependency>
        </dependencies>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-resources-plugin</artifactId>
        <configuration>
          <propertiesEncoding>${propertiesEncoding}</propertiesEncoding>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <!-- Kann mit Property ausgeschaltet werden -->
          <skipTests>${skipTests}</skipTests>
        </configuration>
      </plugin>

      <plugin>
        <groupId>com.amashchenko.maven.plugin</groupId>
        <artifactId>gitflow-maven-plugin</artifactId>
        <configuration>
          <skipTestProject>${gitflow.skipTestProject}</skipTestProject>
          <allowSnapshots>${gitflow.allowSnapshots}</allowSnapshots>
          <digitsOnlyDevVersion>${gitflow.digitsOnlyDevVersion}</digitsOnlyDevVersion>
          <gitFlowConfig>
            <productionBranch>${gitflow.productionBranch}</productionBranch>
            <developmentBranch>${gitflow.developmentBranch}</developmentBranch>
            <featureBranchPrefix>${gitflow.featureBranchPrefix}</featureBranchPrefix>
            <releaseBranchPrefix>${gitflow.releaseBranchPrefix}</releaseBranchPrefix>
            <hotfixBranchPrefix>${gitflow.hotfixBranchPrefix}</hotfixBranchPrefix>
            <supportBranchPrefix>${gitflow.supportBranchPrefix}</supportBranchPrefix>
            <versionTagPrefix>${gitflow.versionTagPrefix}</versionTagPrefix>
            <origin>${gitflow.origin}</origin>
          </gitFlowConfig>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-ear-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <version>${ear.earVersion}</version>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-war-plugin</artifactId>
        <configuration>
          <!-- WAR-Erzeugung auch ohne web.xml -->
          <failOnMissingWebXml>false</failOnMissingWebXml>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <!-- Kann mit Property ausgeschaltet werden -->
          <skipSource>${source.skip}</skipSource>
        </configuration>
        <executions>
          <execution>
            <!-- Source-JAR erstellen (zusätzlich zum Haupt-Artefakt) -->
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-release-plugin</artifactId>
        <inherited>true</inherited>
        <configuration>
          <autoVersionSubmodules>true</autoVersionSubmodules>
          <remoteTagging>false</remoteTagging>
          <suppressCommitBeforeTag>true</suppressCommitBeforeTag>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-dependency-plugin</artifactId>
        <executions>
          <!-- Zu jeder Dependency eine Property mit dem Pfad der Library im lokalen Repository
          setzen. Damit kann der lokale Pfad im Build mittels
          ${groupId:artifactId:type[:classifier]} benutzt werden. -->
          <execution>
            <id>setDependencyPathProperties</id>
            <goals>
              <goal>properties</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-java</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <!-- Minimale Java-Version verlangen -->
                <requireJavaVersion>
                  <version>${required.java.version}</version>
                </requireJavaVersion>
                <!-- Minimale Maven-Version verlangen -->
                <requireMavenVersion>
                  <version>${required.maven.version}</version>
                </requireMavenVersion>

                <!-- Die ehemaligen Profile für JPA-Modellgenerierung werden nicht mehr unterstützt -->
                <requireFilesDontExist>
                  <files>
                    <file>${basedir}/generate-jpa-metamodel.flag</file>
                  </files>
                  <message><![CDATA[
The profile for JPA metamodel generation activated by the file generate-jpa-metamodel.flag is not supported anymore.
Please remove the file generate-jpa-metamodel.flag and add the following dependency to your project:
    <dependency>
      <groupId>$ {jpamodelgen.groupId}</groupId>
      <artifactId>$ {jpamodelgen.artifactId}</artifactId>
      <version>$ {jpamodelgen.version}</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
The spaces after the $ signs must be deleted (they are here just to suppress maven property substitution in this message)
                    ]]>
                  </message>
                </requireFilesDontExist>
                <requireFilesDontExist>
                  <files>
                    <file>${basedir}/generate-querydsl-types.flag</file>
                  </files>
                  <message><![CDATA[
The profile for QueryDSL metamodel generation activated by the file generate-querydsl-types.flag is not supported anymore.
Please remove the file generate-querydsl-types.flag and add the following dependencies to your project:
    <dependency>
      <groupId>$ {querydsl.groupId}</groupId>
      <artifactId>$ {querydsl.jpa.artifactId}</artifactId>
      <version>$ {querydsl.version}</version>
      <classifier>$ {querydsl.classifier}</classifier>
    </dependency>
    <dependency> 
      <groupId>$ {querydsl.groupId}</groupId>
      <artifactId>$ {querydsl.apt.artifactId}</artifactId>
      <version>$ {querydsl.version}</version>
      <classifier>$ {querydsl.apt.classifier}</classifier>
      <scope>provided</scope>
    </dependency>
The spaces after the $ signs must be deleted (they are here just to suppress maven property substitution in this message)
                    ]]>
                  </message>
                </requireFilesDontExist>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>

    </plugins>

    <!-- Resource Filtering: Text ja, Rest nein -->
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>false</filtering>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>**/*.csv</include>
          <include>**/*.json</include>
          <include>**/*.properties</include>
          <include>**/*.txt</include>
          <include>**/*.xml</include>
          <include>**/*.yaml</include>
          <include>**/*.yml</include>
        </includes>
      </resource>
    </resources>

    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>false</filtering>
      </testResource>
      <testResource>
        <directory>src/test/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>**/*.csv</include>
          <include>**/*.json</include>
          <include>**/*.properties</include>
          <include>**/*.txt</include>
          <include>**/*.xml</include>
          <include>**/*.yaml</include>
          <include>**/*.yml</include>
        </includes>
      </testResource>
    </testResources>

  </build>

  <profiles>

    <profile>
      <id>jpamodelgen-pre-java17</id>
      <activation>
        <jdk>(,17)</jdk>
      </activation>
      <properties>
        <jpamodelgen.groupId>org.hibernate</jpamodelgen.groupId>
        <!-- Für neue Paketnamen: hibernate-jpamodelgen-jakarta -->
        <jpamodelgen.artifactId>hibernate-jpamodelgen</jpamodelgen.artifactId>
        <jpamodelgen.version>5.6.10.Final</jpamodelgen.version>
      </properties>
    </profile>
    <profile>
      <!-- Profil zur Aktivierung der Testausführung (die per Default deaktiviert ist) -->
      <!-- Kann insbesondere in NetBeans global eingeschaltet werden (-Ptest). Wenn dann zusätzlich
      "Skip tests for any builds not directly related to testing" eingeschaltet wird, können
      Unit-Tests in
        NetBeans wie erwartet durchgeführt werden. -->
      <id>test</id>
      <activation>
        <activeByDefault>false</activeByDefault>
      </activation>
      <properties>
        <skipTests>false</skipTests>
      </properties>
    </profile>

    <profile>
      <!-- Profil zur Aktivierung der Testausführung inkl. Überdeckungsmessung mit JaCoCo -->
      <id>test-jacoco</id>
      <properties>
        <skipTests>false</skipTests>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>prepare-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
              </execution>
              <execution>
                <id>report</id>
                <phase>test</phase>
                <goals>
                  <goal>report</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-clean-plugin</artifactId>
            <executions>
              <execution>
                <id>remove jacoco results</id>
                <phase>process-test-resources</phase>
                <goals>
                  <goal>clean</goal>
                </goals>
                <configuration>
                  <excludeDefaultDirectories>true</excludeDefaultDirectories>
                  <filesets>
                    <fileset>
                      <directory>${project.build.directory}</directory>
                      <includes>
                        <include>jacoco.exec</include>
                      </includes>
                    </fileset>
                  </filesets>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <!-- Profil zum Downgrade der Testfehler: Wenn dieses Profil aktiviert wird, dann sind
      Test-Fehler keine Build-Fehler. Dies wird insbesondere gebraucht, wenn die Tests in einem
      CI-System ausgeführt
        werden, weil dort die Testergebnisse nur für Build-Läufe gesammelt werden, die erfolgreich waren. -->
      <id>ignore-test-failure</id>
      <properties>
        <maven.test.failure.ignore>true</maven.test.failure.ignore>
      </properties>
    </profile>

    <profile>
      <!-- Profile for deploying to a maven repository-->
      <id>deploy</id>

      <properties>
        <maven.deploy.skip>false</maven.deploy.skip>
        <source.skip>false</source.skip>
        <skipPublishing>false</skipPublishing>
      </properties>

      <!-- Deployment target -->
      <!-- <distributionManagement>
        <repository>
          <id>gedoplanPrivate</id>
          <url>${mvnRepoDeployUrl.gedoplanPrivate}</url>
        </repository>
      </distributionManagement> -->

      <build>
        <defaultGoal>deploy</defaultGoal>
        <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>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.sonatype.central</groupId>
            <artifactId>central-publishing-maven-plugin</artifactId>
            <version>0.10.0</version>
            <extensions>true</extensions>
            <configuration>
              <publishingServerId>central</publishingServerId>
              <autoPublish>true</autoPublish>
              <deploymentName>${project.artifactId}</deploymentName>
              <waitUntil>uploaded</waitUntil>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>

</project>