maven-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>dev.mohterbaord</groupId>
<artifactId>maven-parent</artifactId>
<version>16.0</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!-- SPDX-FileCopyrightText: 2025 Sergei Sokolov <mohterbaord@gmail.com> -->
<!-- SPDX-License-Identifier: Apache-2.0 -->
<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>dev.mohterbaord</groupId>
<artifactId>maven-grandparent</artifactId>
<version>12.4</version>
</parent>
<artifactId>maven-parent</artifactId>
<version>16.0</version>
<packaging>pom</packaging>
<name>Maven Parent</name>
<description>Toolset parent POM</description>
<url>https://codeberg.org/mohterbaord/maven-parent</url>
<organization>
<name>Sergei Sokolov</name>
<url>https://mohterbaord.dev</url>
</organization>
<inceptionYear>2025</inceptionYear>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<developers>
<developer>
<id>mohterbaord</id>
<name>Sergei Sokolov</name>
<email>mohterbaord@gmail.com</email>
<url>https://mohterbaord.dev</url>
<roles>
<role>Project lead</role>
<role>Developer</role>
<role>Maintainer</role>
</roles>
</developer>
</developers>
<scm>
<url>https://codeberg.org/mohterbaord/maven-parent</url>
<connection>scm:git:https://codeberg.org/mohterbaord/maven-parent.git</connection>
<developerConnection>scm:git:ssh://git@codeberg.org/mohterbaord/maven-parent.git</developerConnection>
<tag>16.0</tag>
</scm>
<properties>
<!-- Properties defaults -->
<!-- NOTE:
For application parent POMs, the release Java version may be bumped to the
latest LTS. This default is mostly applicable for the library projects.
-->
<maven.compiler.release>21</maven.compiler.release>
<!-- Version properties: dependencies -->
<!--
HikariCP
* Documentation: https://github.com/brettwooldridge/HikariCP/wiki
* Sources: https://github.com/brettwooldridge/HikariCP
* Maven Central: https://central.sonatype.com/artifact/com.zaxxer/HikariCP
-->
<version.HikariCP>7.1.0</version.HikariCP>
<!--
Immutables
* Documentation: https://immutables.github.io/
* Sources: https://github.com/immutables/immutables
* Maven Central: https://central.sonatype.com/artifact/org.immutables/bom
-->
<version.immutables>2.12.2</version.immutables>
<!--
JSpecify
* Documentation: https://jspecify.dev/
* Sources: https://github.com/jspecify/jspecify
* Maven Central: https://central.sonatype.com/artifact/org.jspecify/jspecify/overview
-->
<version.jspecify>1.0.1</version.jspecify>
<!--
JUnit
* Documentation: https://junit.org/
* Sources: https://github.com/junit-team/junit-framework
* Maven Central: https://central.sonatype.com/artifact/org.junit/junit-bom
-->
<version.junit>6.1.2</version.junit>
<!--
jOOQ
* Documentation: https://www.jooq.org/
* Sources: https://github.com/jOOQ/jOOQ
* Maven Central: https://central.sonatype.com/artifact/org.jooq/jooq-bom
-->
<version.jooq>3.21.6</version.jooq>
<!--
Logback
* Documentation: https://logback.qos.ch/
* Sources: https://github.com/qos-ch/logback
* Maven Central: https://central.sonatype.com/artifact/ch.qos.logback/logback-core
-->
<version.logback>1.6.1</version.logback>
<!--
Lombok
* Documentation: https://projectlombok.org/api/
* Sources: https://github.com/projectlombok/lombok
* Maven Central: https://central.sonatype.com/artifact/org.projectlombok/lombok
-->
<version.lombok>1.18.46</version.lombok>
<!--
Mockito
* Documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org/mockito/Mockito.html
* Sources: https://github.com/mockito/mockito
* Maven Central: https://central.sonatype.com/artifact/org.mockito/mockito-bom
-->
<version.mockito>5.23.0</version.mockito>
<!--
Netty
* Documentation: https://netty.io/
* Sources: https://github.com/netty/netty
* Maven Central: https://central.sonatype.com/artifact/io.netty/netty-bom
-->
<version.netty>4.2.16.Final</version.netty>
<!--
SLF4J
* Documentation: https://www.slf4j.org/
* Sources: https://github.com/qos-ch/slf4j
* Maven Central: https://central.sonatype.com/artifact/org.slf4j/slf4j-bom
-->
<version.slf4j>2.0.18</version.slf4j>
<!--
Tinylog
* Documentation: https://tinylog.org/
* Sources: https://github.com/tinylog-org/tinylog
* Maven Central: https://central.sonatype.com/artifact/org.tinylog/tinylog-api
-->
<version.tinylog>2.7.0</version.tinylog>
<!-- Version properties: plugins -->
<!--
Central Publishing
* Documentation: https://central.sonatype.org/publish/publish-portal-maven/
* Sources: https://repo1.maven.org/maven2/org/sonatype/central/central-publishing-maven-plugin/
* Maven Central: https://central.sonatype.com/artifact/org.sonatype.central/central-publishing-maven-plugin
-->
<version.central-publishing-maven-plugin>0.11.0</version.central-publishing-maven-plugin>
<!--
Exec Maven Plugin
* Documentation: https://www.mojohaus.org/exec-maven-plugin/
* Sources: https://github.com/mojohaus/exec-maven-plugin
* Maven Central: https://central.sonatype.com/artifact/org.codehaus.mojo/exec-maven-plugin
-->
<version.exec-maven-plugin>3.6.3</version.exec-maven-plugin>
<!--
JaCoCo
* Documentation: https://www.jacoco.org/jacoco/trunk/doc/maven.html
* Sources: https://github.com/jacoco/jacoco
* Maven Central: https://central.sonatype.com/artifact/org.jacoco/jacoco-maven-plugin
-->
<version.jacoco-maven-plugin>0.8.15</version.jacoco-maven-plugin>
<!--
License Maven Plugin
* Documentation: https://www.mojohaus.org/license-maven-plugin/
* Sources: https://github.com/mojohaus/license-maven-plugin
* Maven Central: https://central.sonatype.com/artifact/org.codehaus.mojo/license-maven-plugin
-->
<version.license-maven-plugin>2.7.1</version.license-maven-plugin>
<!--
GraalVM Native Image
* Documentation: https://graalvm.github.io/native-build-tools/latest/maven-plugin.html
* Sources: https://github.com/graalvm/native-build-tools
* Maven Central: https://central.sonatype.com/artifact/org.graalvm.buildtools/native-maven-plugin
-->
<version.native-maven-plugin>1.1.7</version.native-maven-plugin>
<!--
Spotless
* Documentation: https://github.com/diffplug/spotless/tree/main/plugin-maven
* Sources: https://github.com/diffplug/spotless
* Maven Central: https://central.sonatype.com/artifact/com.diffplug.spotless/spotless-maven-plugin
-->
<version.spotless-maven-plugin>3.9.0</version.spotless-maven-plugin>
<!--
Versions Maven Plugin
* Documentation: https://www.mojohaus.org/versions/versions-maven-plugin/
* Sources: https://github.com/mojohaus/versions
* Maven Central: https://central.sonatype.com/artifact/org.codehaus.mojo/versions-maven-plugin
-->
<version.versions-maven-plugin>2.21.0</version.versions-maven-plugin>
<!-- Version properties: extensions -->
<!--
Maven Archetype Packaging
* Documentation: https://maven.apache.org/archetype/archetype-packaging/
* Sources: https://github.com/apache/maven-archetype
* Maven Central: https://central.sonatype.com/artifact/org.apache.maven.archetype/archetype-packaging
-->
<version.archetype-packaging>3.4.1</version.archetype-packaging>
</properties>
<dependencyManagement>
<dependencies>
<!-- BOMs -->
<dependency>
<groupId>org.immutables</groupId>
<artifactId>bom</artifactId>
<version>${version.immutables}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${version.junit}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.jooq</groupId>
<artifactId>jooq-bom</artifactId>
<version>${version.jooq}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-bom</artifactId>
<version>${version.mockito}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-bom</artifactId>
<version>${version.netty}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-bom</artifactId>
<version>${version.slf4j}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!-- Logback modules -->
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${version.logback}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${version.logback}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>${version.logback}</version>
</dependency>
<!-- Tinylog modules -->
<dependency>
<groupId>org.tinylog</groupId>
<artifactId>tinylog-api</artifactId>
<version>${version.tinylog}</version>
</dependency>
<dependency>
<groupId>org.tinylog</groupId>
<artifactId>tinylog-impl</artifactId>
<version>${version.tinylog}</version>
</dependency>
<!-- other modules -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>${version.HikariCP}</version>
</dependency>
<dependency>
<groupId>org.jspecify</groupId>
<artifactId>jspecify</artifactId>
<version>${version.jspecify}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${version.lombok}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>${version.central-publishing-maven-plugin}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>${version.exec-maven-plugin}</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${version.jacoco-maven-plugin}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>${version.license-maven-plugin}</version>
</plugin>
<plugin>
<groupId>org.graalvm.buildtools</groupId>
<artifactId>native-maven-plugin</artifactId>
<version>${version.native-maven-plugin}</version>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>${version.spotless-maven-plugin}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${version.versions-maven-plugin}</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<profiles>
<!-- NOTE:
Profiles starting with "general" are intended for use in child projects.
-->
<profile>
<id>general:license</id>
<properties>
<skipTests>true</skipTests>
<license.licenseName>apache_v2</license.licenseName>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<executions>
<execution>
<id>upsert-license-file</id>
<goals>
<goal>update-project-license</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>general:publish</id>
<properties>
<publishingServerId />
<gpg.keyname />
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>require-publish-properties</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>publishingServerId</property>
<regex>.+</regex>
<regexMessage>Property "publishingServerId" is required</regexMessage>
</requireProperty>
<requireProperty>
<property>gpg.keyname</property>
<regex>.+</regex>
<regexMessage>Property "gpg.keyname" is required</regexMessage>
</requireProperty>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<bestPractices>true</bestPractices>
<defaultKeyring>false</defaultKeyring>
<keyname>${gpg.keyname}</keyname>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<publishingServerId>${publishingServerId}</publishingServerId>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- NOTE:
Profiles starting with "maven-parent" are only used in the POM's own build
lifecycle and should therefore not be used in child projects.
-->
<profile>
<id>maven-parent:versions</id>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<configuration>
<includeParent>false</includeParent>
<properties>
<property>
<name>version.archetype-packaging</name>
<dependencies>
<dependency>
<groupId>org.apache.maven.archetype</groupId>
<artifactId>archetype-packaging</artifactId>
</dependency>
</dependencies>
</property>
</properties>
<ruleSet>
<ignoreVersions>
<ignoreVersion>
<type>regex</type>
<version>.+-(SNAPSHOT|M\d+)</version>
</ignoreVersion>
<ignoreVersion>
<type>regex</type>
<version>.+-(alpha|beta).*</version>
</ignoreVersion>
</ignoreVersions>
</ruleSet>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>