parent-test
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>dev.ikm.test-env</groupId>
<artifactId>parent-test</artifactId>
<version>12.54.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>dev.ikm.test-env</groupId>
<artifactId>parent-test</artifactId>
<version>12.54.0</version>
<name>General Build Parent</name>
<description>
The General Parent that helps to define the build processes that should be used across projects, regardless of.
Package type. This is versioned and if you want to use a different version of the pom, you can simply change
the parent version and it will adjust all of the properties being used throughout, as the properties and
plugins will be inherited by subprojects.
</description>
<packaging>pom</packaging>
<inceptionYear>2015</inceptionYear>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
<comments>A business-friendly OSS license</comments>
</license>
</licenses>
<scm>
<url>http://www.github.com/ikmdev/build-parent</url>
</scm>
<developers>
<developer>
<id>ikmdev</id>
<name>IKM Development Team</name>
<email>support@ikm.dev</email>
</developer>
</developers>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/ikmdev/build-parent/issues</url>
</issueManagement>
<url>http://www.ikm.dev</url>
<organization>
<name>Integrated Knowledge Management</name>
<url>http://www.ikm.dev</url>
</organization>
<properties>
<!-- Project Encoding -->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.build.resourceEncoding>UTF-8</project.build.resourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<!-- Java and Maven versions -->
<java.version>23</java.version>
<maven.version>3.9.9</maven.version>
<!-- Clean Lifecycle -->
<maven.clean-plugin.version>3.4.1</maven.clean-plugin.version>
<!-- POM Lifecycle -->
<maven.plugin-plugin.version>3.15.1</maven.plugin-plugin.version>
<maven.install-plugin.version>3.1.4</maven.install-plugin.version>
<maven.deploy-plugin.version>3.1.4</maven.deploy-plugin.version>
<!-- Site Lifecycle -->
<maven.site.plugin>3.21.0</maven.site.plugin>
<maven.versions.plugin>2.18.0</maven.versions.plugin>
<maven.project-info-reports-plugin.version>3.9.0</maven.project-info-reports-plugin.version>
<!-- Command Line tooling -->
<maven.dependency-plugin.version>3.8.1</maven.dependency-plugin.version>
<maven.assembly-plugin.version>3.7.1</maven.assembly-plugin.version>
<maven.assembly.version>${maven.assembly-plugin.version}</maven.assembly.version>
<maven.wrapper-plugin.version>3.3.2</maven.wrapper-plugin.version>
<!-- Release plugins -->
<maven.gpg-plugin.version>3.2.7</maven.gpg-plugin.version>
<maven.enforcer-plugin.version>3.5.0</maven.enforcer-plugin.version>
<semver-enforcer-rule.version>0.9.33</semver-enforcer-rule.version>
<maven.directory.plugin>1.0</maven.directory.plugin>
<!-- Google license plugin-->
<maven-license-plugin.version>4.1</maven-license-plugin.version>
<!-- Mojohaus license plugin-->
<maven-mojo-license-plugin.version>2.5.0</maven-mojo-license-plugin.version>
<maven.changes-plugin.version>2.12.1</maven.changes-plugin.version>
<maven.sonarqube.version>5.1.0.4751</maven.sonarqube.version>
<maven.github-flow.version>1.21.1-r4</maven.github-flow.version>
<nexus-staging-maven-plugin.version>1.7.0</nexus-staging-maven-plugin.version>
<build-helper-maven-plugin.version>3.6.0</build-helper-maven-plugin.version>
<maven-javadoc-plugin.version>3.11.2</maven-javadoc-plugin.version>
<maven-source-plugin.version>3.3.1</maven-source-plugin.version>
<maven.antrun.plugin>3.1.0</maven.antrun.plugin>
<sonatype.central.plugin.version>0.8.0</sonatype.central.plugin.version>
<!--properties required for sonarqube analysis-->
<sonar.organization>ikmdev</sonar.organization>
<sonar.host.url>https://sonarcloud.io</sonar.host.url>
</properties>
<modules>
<module>java-parent</module>
</modules>
<build>
<pluginManagement>
<plugins>
<!--======================================================-->
<!-- Clean Lifecycle -->
<!--======================================================-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${maven.clean-plugin.version}</version>
</plugin>
<!--======================================================-->
<!-- POM Lifecycle -->
<!--======================================================-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${maven.install-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${maven.deploy-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-plugin.version}</version>
</plugin>
<!--======================================================-->
<!-- Command-Line tooling -->
<!--======================================================-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>${maven.plugin-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.wrapper</groupId>
<artifactId>maven-wrapper</artifactId>
<version>${maven.wrapper-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${maven.gpg-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.commonjava.maven.plugins</groupId>
<artifactId>directory-maven-plugin</artifactId>
<version>${maven.directory.plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${maven.dependency-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${maven.assembly-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven.enforcer-plugin.version}</version>
<executions>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>(3.9,)</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
<execution>
<id>enforce-java</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>${java.version}</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<!-- Maven Versions plugin-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${maven.versions.plugin}</version>
<configuration>
<ruleSet>
<ignoreVersion>
<type>regex</type>
<version>.+-(alpha|beta).+</version>
</ignoreVersion>
<ignoreVersion>
<type>regex</type>
<version>.+-(M|m).+</version>
</ignoreVersion>
<ignoreVersion>
<type>regex</type>
<version>.+-(RC|rc).+</version>
</ignoreVersion>
<ignoreVersion>
<type>regex</type>
<version>(.+-SNAPSHOT|.+-M\d)</version>
</ignoreVersion>
</ruleSet>
</configuration>
</plugin>
<!-- Mojohaus license plugin-->
<!--
Can run on any project by typing the following at the top of the repository:
mvn org.codehaus.mojo:license-maven-plugin:2.2.0:update-project-license -N
-->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${maven-mojo-license-plugin.version}</version>
</plugin>
<!-- Used to extract changes from JIRA/GitHub -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changes-plugin</artifactId>
<version>${maven.changes-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${maven.project-info-reports-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.sonarsource.scanner.maven</groupId>
<artifactId>sonar-maven-plugin</artifactId>
<version>${maven.sonarqube.version}</version>
</plugin>
<!-- This plugin is provided to help with feature development and releasing -->
<plugin>
<groupId>dev.ikm</groupId>
<artifactId>gitflow-maven-plugin</artifactId>
<version>${maven.github-flow.version}</version>
<configuration>
<featureNamePattern>^(?!(((feature|hotfix|bugfix))\/(IKM|AR|IAT|IC|IKMC|IKDT|IKMD|IIA|IKMW|IKMM|TE)-\d+(-[0-9A-Za-z\-]*)*)|main|prod|master|dev).*$</featureNamePattern>
<separateFinishBranches>true</separateFinishBranches>
<gitFlowConfig>
<developmentBranch>main</developmentBranch>
<productionBranch>main</productionBranch>
<featureBranchPrefix>feature/</featureBranchPrefix>
<finishBranchPrefix>finished/</finishBranchPrefix>
<hotfixBranchPrefix>hotfix/</hotfixBranchPrefix>
<supportBranchPrefix>support/</supportBranchPrefix>
<releaseBranchPrefix>release/</releaseBranchPrefix>
</gitFlowConfig>
<commitMessages>
<featureStartMessage>Update version to start feature: @{featureName}</featureStartMessage>
<featureFinishMessage>Update version to finish feature: @{featureName}</featureFinishMessage>
<releaseStartMessage>Update release version: @{version}</releaseStartMessage>
<tagReleaseMessage>Tag release: @{version}</tagReleaseMessage>
<releaseFinishMessage>Update development version: @{version}</releaseFinishMessage>
</commitMessages>
</configuration>
</plugin>
<!-- This plugin is publishing to Central Portal Maven Central Repository -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${sonatype.central.plugin.version}</version>
</plugin>
<!-- This plugin contains various small independent goals to assist with the Maven build lifecycle -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>${build-helper-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
</plugin>
<!-- Used for executing tasking that does not fit into Maven cleanly -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>${maven.antrun.plugin}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<configuration>
<licenseName>apache_v2</licenseName>
</configuration>
</plugin>
<plugin>
<groupId>dev.ikm</groupId>
<artifactId>gitflow-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>licenses</report>
<report>modules</report>
<report>dependency-info</report>
<report>plugins</report>
<report>scm</report>
<report>summary</report>
</reports>
</reportSet>
</reportSets>
<configuration>
<dependencyLocationsEnabled>false</dependencyLocationsEnabled>
<dependencyDetailsEnabled>false</dependencyDetailsEnabled>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<report>dependency-updates-report</report>
<report>plugin-updates-report</report>
<report>property-updates-report</report>
</reports>
</reportSet>
<reportSet>
<id>aggregate</id>
<inherited>false</inherited>
<reports>
<report>dependency-updates-aggregate-report</report>
<report>plugin-updates-aggregate-report</report>
<report>property-updates-aggregate-report</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<id>source-resources-additional-tasks</id>
<activation>
<file>
<exists>${basedir}/src/main/resources</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>jar-resources</id>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
<configuration>
<classesDirectory>${basedir}/src/main/resources</classesDirectory>
<classifier>resources</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>test-resources-additional-tasks</id>
<activation>
<file>
<exists>${basedir}/src/test/resources</exists>
</file>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>jar-test-resources</id>
<goals>
<goal>jar</goal>
</goals>
<phase>package</phase>
<configuration>
<classesDirectory>${basedir}/src/test/resources</classesDirectory>
<classifier>test-resources</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<!-- To disable this, use something like "mvn install -P!codeQuality" -->
<id>codeQuality</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<!--======================================================-->
<!-- Code Quality Checks -->
<!--======================================================-->
<!-- Use of Enforcer plugin to:
* Not allow snapshots
* Require semantic Versioning Conformance
-->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-no-snapshots</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireReleaseDeps>
<message>No Snapshots Allowed!</message>
<failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
</requireReleaseDeps>
</rules>
<fail>false</fail>
</configuration>
</execution>
<execution>
<id>enforce-no-bad-sections</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<banDistributionManagement/>
<banDuplicatePomDependencyVersions/>
<banDynamicVersions>
<allowSnapshots>true</allowSnapshots>
<allowRelease>false</allowRelease>
<allowLatest>false</allowLatest>
<allowRanges>false</allowRanges>
<excludeOptionals>false</excludeOptionals>
<excludedScopes/>
<ignores/>
</banDynamicVersions>
<requireProperty>
<property>project.version</property>
<message>"Project version must be a semantic version."</message>
<regex>
^(0|[1-9]\d*)\.(0|[1-9]\d*)\.(0|[1-9]\d*)(?:-((?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\.(?:0|[1-9]\d*|\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\+([0-9a-zA-Z-]+(?:\.[0-9a-zA-Z-]+)*))?$
</regex>
<regexMessage>"Project version must match the pattern 1.2.3."</regexMessage>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
<execution>
<id>enforce-maven</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>(3.9,)</version>
</requireMavenVersion>
</rules>
</configuration>
</execution>
<execution>
<id>enforce-java</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>${java.version}</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.semver</groupId>
<artifactId>enforcer-rule</artifactId>
<version>${semver-enforcer-rule.version}</version>
</dependency>
</dependencies>
</plugin>
<!-- Use of Custom plugin to force versions into properties -->
<plugin>
<groupId>com.github.jlgrock</groupId>
<artifactId>pom-check-maven-plugin</artifactId>
<executions>
<execution>
<!-- Requires maven > 3.3.x -->
<goals>
<goal>version-check</goal>
</goals>
<phase>validate</phase>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>signArtifacts</id>
<build>
<plugins>
<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>
<configuration>
<gpgArguments>
<argument>--pinentry-mode</argument>
<argument>loopback</argument>
<argument>--yes</argument>
<argument>--verbose</argument>
</gpgArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>deploy</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>${project.build.directory}/*.asc</file>
<type>asc</type>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>release-enforcement</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-no-snapshots</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireReleaseDeps>
<message>No Snapshots Allowed!</message>
<failWhenParentIsSnapshot>true</failWhenParentIsSnapshot>
</requireReleaseDeps>
</rules>
<fail>true</fail>
</configuration>
</execution>
<execution>
<id>enforce-no-bad-sections</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<banDynamicVersions>
<allowSnapshots>false</allowSnapshots>
</banDynamicVersions>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>emptySourceJavadocMavenCentralRepository</id>
<activation>
<property>
<name>repositoryIdMavenCentralRepository</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<!-- Generate empty Java Doc jar and source jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<executions>
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
<execution>
<id>javadoc-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>javadoc</classifier>
</configuration>
</execution>
<execution>
<id>sources-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<classifier>sources</classifier>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sourceJavadocMavenCentralRepository</id>
<activation>
<property>
<name>repositoryIdMavenCentralRepository</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<!-- Generate Java Doc jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<doclint>none</doclint>
<source>${java.version}</source>
<release>${java.version}</release>
</configuration>
<executions>
<execution>
<id>jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- Source Files -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>stageMavenCentralRepository</id>
<activation>
<property>
<name>repositoryIdMavenCentralRepository</name>
<value>true</value>
</property>
</activation>
<build>
<plugins>
<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>
<configuration>
<gpgArguments>
<argument>--pinentry-mode</argument>
<argument>loopback</argument>
<argument>--yes</argument>
<argument>--verbose</argument>
</gpgArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>true</autoPublish>
<waitUntil>published</waitUntil>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>