oss-parent
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.metricshub</groupId>
<artifactId>oss-parent</artifactId>
<version>4</version>
</dependency><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>org.metricshub</groupId>
<artifactId>oss-parent</artifactId>
<version>4</version>
<name>Open Source Software Parent</name>
<description>Maven Parent Configuration for Open Source Software Projects</description>
<packaging>pom</packaging>
<organization>
<name>MetricsHub</name>
<url>https://metricshub.com</url>
</organization>
<url>https://metricshub.org/oss-parent</url>
<inceptionYear>2025</inceptionYear>
<distributionManagement>
<repository>
<id>central</id>
<url>https://central.sonatype.com</url>
</repository>
<snapshotRepository>
<id>central</id>
<url>https://central.sonatype.com/repository/maven-snapshots</url>
</snapshotRepository>
</distributionManagement>
<licenses>
<license>
<name>Apache-2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<issueManagement>
<system>GitHub</system>
<url>https://github.com/metricshub/oss-parent/issues/</url>
</issueManagement>
<scm>
<connection>scm:git:https://github.com/metricshub/oss-parent.git</connection>
<url>https://github.com/metricshub/oss-parent/tree/${project.scm.tag}</url>
<tag>v4</tag>
</scm>
<developers>
<developer>
<name>Bertrand Martin (@bertysentry)</name>
<email>bertrand@sentrysoftware.com</email>
<roles>
<role>maintainer</role>
</roles>
</developer>
<developer>
<name>Christophe Clermont (@ChristopheClermont)</name>
<email>christophe@sentrysoftware.com</email>
<roles>
<role>maintainer</role>
</roles>
</developer>
</developers>
<properties>
<!-- UTF-8 -->
<project.build.encoding>UTF-8</project.build.encoding>
<project.build.sourceEncoding>${project.build.encoding}</project.build.sourceEncoding>
<project.build.resourceEncoding>${project.build.encoding}</project.build.resourceEncoding>
</properties>
<build>
<!-- Common configuration for plugins -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<plugin>
<artifactId>maven-artifact-plugin</artifactId>
<version>3.6.0</version>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.7.1</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.14.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.8.1</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>3.1.4</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>3.5.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>3.5.3</version>
</plugin>
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<version>3.2.7</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>3.1.4</version>
</plugin>
<plugin>
<artifactId>maven-invoker-plugin</artifactId>
<version>3.9.0</version>
</plugin>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>3.4.2</version>
</plugin>
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.11.2</version>
<configuration>
<detectJavaApiLink>false</detectJavaApiLink>
<release>${maven.compiler.release}</release>
<show>public</show>
<notimestamp>true</notimestamp>
<failOnError>false</failOnError>
<sourcepath>${basedir}/src/main/java</sourcepath>
</configuration>
</plugin>
<plugin>
<artifactId>maven-plugin-plugin</artifactId>
<version>3.15.1</version>
</plugin>
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>3.1.1</version>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.3.1</version>
</plugin>
<plugin>
<artifactId>maven-shade-plugin</artifactId>
<version>3.6.0</version>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<version>3.12.1</version>
</plugin>
<plugin>
<artifactId>maven-source-plugin</artifactId>
<version>3.3.1</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>3.5.3</version>
</plugin>
<plugin>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>3.5.2</version>
</plugin>
<plugin>
<groupId>com.hubspot.maven.plugins</groupId>
<artifactId>prettier-maven-plugin</artifactId>
<version>0.22</version>
</plugin>
<plugin>
<groupId>com.googlecode.maven-download-plugin</groupId>
<artifactId>download-maven-plugin</artifactId>
<version>1.13.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>3.6.0</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>buildnumber-maven-plugin</artifactId>
<version>1.4</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.5.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>2.5.0</version>
</plugin>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.12</version>
</plugin>
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<version>0.7.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-changelog-plugin</artifactId>
<version>3.0.0-M1</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.scm</groupId>
<artifactId>maven-scm-provider-jgit</artifactId>
<version>2.1.0</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- artifact (Reproducible Build) -->
<plugin>
<artifactId>maven-artifact-plugin</artifactId>
<executions>
<execution>
<id>buildinfo</id>
<phase>verify</phase>
<goals>
<goal>buildinfo</goal>
</goals>
<configuration>
<reproducible>true</reproducible>
</configuration>
</execution>
</executions>
</plugin>
<!-- source -->
<plugin>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<!-- javadoc -->
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<doclint>all,-missing</doclint>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<configuration>
<licenseName>apache_v2</licenseName>
<copyrightOwners>MetricsHub</copyrightOwners>
<copyrightStringFormat>Copyright %1$s %2$s</copyrightStringFormat>
<includes>
<include>main/java/**/*.java</include>
</includes>
<trimHeaderLine>true</trimHeaderLine>
<canUpdateCopyright>true</canUpdateCopyright>
<canUpdateDescription>true</canUpdateDescription>
<processStartTag>╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲</processStartTag>
<sectionDelimiter>჻჻჻჻჻჻</sectionDelimiter>
<processEndTag>╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱╲╱</processEndTag>
</configuration>
<executions>
<execution>
<id>check-license</id>
<phase>process-sources</phase>
<goals>
<goal>check-file-header</goal>
</goals>
<configuration>
<failOnMissingHeader>true</failOnMissingHeader>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.sentrysoftware.maven</groupId>
<artifactId>maven-skin-tools</artifactId>
<version>1.3.00</version>
</dependency>
</dependencies>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<!-- jxr: creates XRef links -->
<plugin>
<artifactId>maven-jxr-plugin</artifactId>
<version>3.6.0</version>
</plugin>
<!-- checkstyle -->
<plugin>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<linkXref>true</linkXref>
<configLocation>checkstyle.xml</configLocation>
</configuration>
</plugin>
<!-- pmd -->
<plugin>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.26.0</version>
<configuration>
<linkXref>true</linkXref>
<sourceEncoding>${project.build.sourceEncoding}</sourceEncoding>
<minimumTokens>50</minimumTokens>
<targetJdk>${maven.compiler.release}</targetJdk>
</configuration>
</plugin>
<!-- spotbugs -->
<plugin>
<groupId>com.github.spotbugs</groupId>
<artifactId>spotbugs-maven-plugin</artifactId>
<version>4.9.3.0</version>
</plugin>
<!-- changelog -->
<plugin>
<artifactId>maven-changelog-plugin</artifactId>
<version>3.0.0-M1</version>
<configuration>
<providerImplementations>
<git>jgit</git>
</providerImplementations>
</configuration>
</plugin>
<!-- javadoc -->
<plugin>
<artifactId>maven-javadoc-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- Default project-info-reports -->
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>3.9.0</version>
<reportSets>
<reportSet>
<reports>
<report>ci-management</report>
<report>dependencies</report>
<report>dependency-info</report>
<report>distribution-management</report>
<report>issue-management</report>
<report>licenses</report>
<report>plugins</report>
<report>scm</report>
<report>summary</report>
<report>team</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<profiles>
<!-- Profile used for POM packaging projects -->
<profile>
<id>pompackaging</id>
<build>
<plugins>
<!-- build a fake javadoc JAR to workaround Maven Central rules -->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>javadoc</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assembly/javadoc.xml</descriptor>
</descriptors>
<attach>true</attach>
</configuration>
</execution>
<execution>
<id>source</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
<configuration>
<descriptors>
<descriptor>src/assembly/source.xml</descriptor>
</descriptors>
<attach>true</attach>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile to deploy on Maven Central -->
<profile>
<id>maven-central</id>
<activation>
<property>
<name>env.MAVEN_CENTRAL_TOKEN</name>
</property>
</activation>
<properties>
<maven.deploy.skip>true</maven.deploy.skip>
</properties>
<build>
<plugins>
<!-- Replaces the default Maven Deploy plugin -->
<!-- publishes on https://central.sonatype.com -->
<plugin>
<groupId>org.sonatype.central</groupId>
<artifactId>central-publishing-maven-plugin</artifactId>
<extensions>true</extensions>
<configuration>
<publishingServerId>central</publishingServerId>
<autoPublish>${env.AUTO_RELEASE_AFTER_CLOSE}</autoPublish>
<centralSnapshotsUrl>https://central.sonatype.com/repository/maven-snapshots/</centralSnapshotsUrl>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<!-- Profile for releasing the project -->
<profile>
<id>release</id>
<build>
<plugins>
<!-- gpg to sign the released artifacts -->
<plugin>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
<configuration>
<updateReleaseInfo>true</updateReleaseInfo>
<gpgArguments>
<arg>--pinentry-mode</arg>
<arg>loopback</arg>
</gpgArguments>
</configuration>
</execution>
</executions>
</plugin>
<!-- release -->
<plugin>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<tagNameFormat>v@{project.version}</tagNameFormat>
</configuration>
<executions>
<execution>
<id>default</id>
<goals>
<goal>perform</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>