java-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>com.open-elements</groupId>
<artifactId>java-parent</artifactId>
<version>1.1.0</version>
</dependency><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 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.open-elements</groupId>
<artifactId>java-parent</artifactId>
<version>1.1.0</version>
<packaging>pom</packaging>
<name>Java Parent</name>
<description>Java Parent for projects by Open Elements</description>
<url>https://github.com/OpenElementsLabs/java-parent</url>
<licenses>
<license>
<name>Apache License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0</url>
</license>
</licenses>
<developers>
<developer>
<name>Hendrik Ebbers</name>
<email>hendrik.ebbers@open-elements.com</email>
<organization>Open Elements</organization>
<organizationUrl>https://open-elements.com</organizationUrl>
</developer>
</developers>
<scm>
<connection>scm:git:https://github.com/OpenElementsLabs/java-parent.git</connection>
<developerConnection>scm:git:https://github.com/OpenElementsLabs/java-parent.git</developerConnection>
<url>https://github.com/OpenElementsLabs/java-parent</url>
</scm>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>21</maven.compiler.source>
<maven.compiler.target>21</maven.compiler.target>
<!-- Minimum build environment enforced by the maven-enforcer-plugin.
Child projects may override these to require a newer toolchain. -->
<enforcer.requiredMavenVersion>3.9.11</enforcer.requiredMavenVersion>
<enforcer.requiredJavaVersion>21</enforcer.requiredJavaVersion>
<!-- Release: GitHub repo coordinates used by the deploy-release profile.
Defaults assume the GitHub repo name equals the Maven artifactId;
a child project overrides release.github.repo (or .owner) when it differs. -->
<release.github.owner>OpenElementsLabs</release.github.owner>
<release.github.repo>${project.artifactId}</release.github.repo>
<!-- Plugin versions -->
<maven-resources-plugin.version>3.5.0</maven-resources-plugin.version>
<maven-compiler-plugin.version>3.15.0</maven-compiler-plugin.version>
<maven-surefire-plugin.version>3.5.5</maven-surefire-plugin.version>
<maven-javadoc-plugin.version>3.12.0</maven-javadoc-plugin.version>
<maven-source-plugin.version>3.4.0</maven-source-plugin.version>
<maven-gpg-plugin.version>3.2.8</maven-gpg-plugin.version>
<maven-jar-plugin.version>3.5.0</maven-jar-plugin.version>
<maven-deploy-plugin.version>3.1.4</maven-deploy-plugin.version>
<maven-clean-plugin.version>3.5.0</maven-clean-plugin.version>
<maven-enforcer-plugin.version>3.6.3</maven-enforcer-plugin.version>
<cyclonedx-maven-plugin.version>2.9.2</cyclonedx-maven-plugin.version>
<jreleaser-maven-plugin.version>1.24.0</jreleaser-maven-plugin.version>
<versions-maven-plugin.version>2.21.0</versions-maven-plugin.version>
<spotless-maven-plugin.version>3.7.0</spotless-maven-plugin.version>
<git-commit-id-maven-plugin.version>10.0.0</git-commit-id-maven-plugin.version>
<!-- Dependency versions -->
<spring-boot.version>3.5.14</spring-boot.version>
<testcontainers.version>2.0.5</testcontainers.version>
</properties>
<distributionManagement>
<snapshotRepository>
<id>central-portal-snapshots</id>
<name>Central Portal Snapshots</name>
<url>https://central.sonatype.com/repository/maven-snapshots/</url>
</snapshotRepository>
</distributionManagement>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers-bom</artifactId>
<version>${testcontainers.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring-boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${maven-surefire-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${maven-javadoc-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${maven-source-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.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-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-clean-plugin</artifactId>
<version>${maven-clean-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${maven-enforcer-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<version>${cyclonedx-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.jreleaser</groupId>
<artifactId>jreleaser-maven-plugin</artifactId>
<version>${jreleaser-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<version>${versions-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>${spotless-maven-plugin.version}</version>
</plugin>
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<version>${git-commit-id-maven-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<configuration>
<java>
<googleJavaFormat/>
</java>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-build-environment</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>${enforcer.requiredMavenVersion}</version>
</requireMavenVersion>
<requireJavaVersion>
<version>${enforcer.requiredJavaVersion}</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>versions-maven-plugin</artifactId>
<configuration>
<generateBackupPoms>false</generateBackupPoms>
<overwriteOutput>true</overwriteOutput>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>full-build</id>
<build>
<defaultGoal>package</defaultGoal>
<plugins>
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<executions>
<execution>
<id>get-the-git-infos</id>
<goals>
<goal>revision</goal>
</goals>
<phase>initialize</phase>
</execution>
</executions>
<configuration>
<!-- No git.properties file: a shared /git.properties collides on a
consumer's classpath (only the first jar's copy is ever read).
The git infos are written into each jar's own MANIFEST.MF below. -->
<generateGitPropertiesFile>false</generateGitPropertiesFile>
<commitIdGenerationMode>full</commitIdGenerationMode>
<!-- Reproducible builds: format the commit time in a fixed format and
in UTC, so the rendered string does not depend on the build
machine's locale or timezone. -->
<dateFormat>yyyy-MM-dd'T'HH:mm:ss'Z'</dateFormat>
<dateFormatTimeZone>UTC</dateFormatTimeZone>
<!-- A build from a published source archive (no .git) must not fail;
this also lets third parties verify reproducibility from sources. -->
<failOnNoGitDirectory>false</failOnNoGitDirectory>
<!-- Reproducible builds: exclude every property that varies between
builds of the same commit (build time, host, the build machine's
git user, and remote-tracking state). Only commit-/repo-derived
values that are deterministic for a given commit are kept. -->
<excludeProperties>
<excludeProperty>git.build.time</excludeProperty>
<excludeProperty>git.build.host</excludeProperty>
<excludeProperty>git.build.user.name</excludeProperty>
<excludeProperty>git.build.user.email</excludeProperty>
<excludeProperty>git.local.branch.ahead</excludeProperty>
<excludeProperty>git.local.branch.behind</excludeProperty>
</excludeProperties>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<!-- Git metadata lives in the per-jar manifest (no classpath
collision). All values are commit-/repo-derived and thus
deterministic for a given commit, keeping builds reproducible. -->
<manifestEntries>
<Git-Commit>${git.commit.id.abbrev}</Git-Commit>
<Git-Commit-Time>${git.commit.time}</Git-Commit-Time>
<Git-Branch>${git.branch}</Git-Branch>
<Git-Tag>${git.tags}</Git-Tag>
<Git-Dirty>${git.dirty}</Git-Dirty>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<attach>true</attach>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<attach>true</attach>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.cyclonedx</groupId>
<artifactId>cyclonedx-maven-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>makeBom</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>deploy-release</id>
<build>
<defaultGoal>deploy</defaultGoal>
<plugins>
<plugin>
<groupId>org.jreleaser</groupId>
<artifactId>jreleaser-maven-plugin</artifactId>
<configuration>
<jreleaser>
<signing>
<pgp>
<active>ALWAYS</active>
<armored>true</armored>
</pgp>
</signing>
<deploy>
<maven>
<mavenCentral>
<sonatype>
<active>ALWAYS</active>
<url>https://central.sonatype.com/api/v1/publisher</url>
<stagingRepositories>target/staging-deploy</stagingRepositories>
</sonatype>
</mavenCentral>
</maven>
</deploy>
<release>
<github>
<owner>${release.github.owner}</owner>
<name>${release.github.repo}</name>
<changelog>
<formatted>ALWAYS</formatted>
<preset>conventional-commits</preset>
</changelog>
</github>
</release>
</jreleaser>
</configuration>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>