plexus
Used in:
components
- OverviewOverview
- VersionsVersions
- DependentsDependents
- DependenciesDependencies
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus</artifactId>
<version>27</version>
</dependency><?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright The Codehaus Foundation.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<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>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus</artifactId>
<version>27</version>
<packaging>pom</packaging>
<name>Plexus</name>
<description>Parent POM for the Codehaus Plexus projects, providing shared build, reporting and
release configuration.</description>
<url>https://codehaus-plexus.github.io/plexus-pom/</url>
<inceptionYear>2001</inceptionYear>
<organization>
<name>Codehaus Plexus</name>
<url>https://codehaus-plexus.github.io/</url>
</organization>
<licenses>
<license>
<name>Apache-2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
<distribution>repo</distribution>
</license>
</licenses>
<developers>
<developer>
<id>jvanzyl</id>
<name>Jason van Zyl</name>
<email>jason@maven.org</email>
<roles>
<role>Developer</role>
<role>Release Manager</role>
</roles>
</developer>
<developer>
<id>kaz</id>
<name>Pete Kazmier</name>
<email />
<organization />
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>jtaylor</id>
<name>James Taylor</name>
<email>james@jamestaylor.org</email>
<organization />
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>dandiep</id>
<name>Dan Diephouse</name>
<email>dan@envoisolutions.com</email>
<organization>Envoi solutions</organization>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>kasper</id>
<name>Kasper Nielsen</name>
<email>apache@kav.dk</email>
<organization />
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>bwalding</id>
<name>Ben Walding</name>
<email>bwalding@codehaus.org</email>
<organization>Walding Consulting Services</organization>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>mhw</id>
<name>Mark Wilkinson</name>
<email>mhw@kremvax.net</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>michal</id>
<name>Michal Maczka</name>
<email>mmaczka@interia.pl</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>evenisse</id>
<name>Emmanuel Venisse</name>
<email>evenisse@codehaus.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>trygvis</id>
<name>Trygve Laugstøl</name>
<email>trygvis@codehaus.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>kenney</id>
<name>Kenney Westerhof</name>
<email>kenney@codehaus.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>carlos</id>
<name>Carlos Sanchez</name>
<email>carlos@codehaus.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>brett</id>
<name>Brett Porter</name>
<email>brett@codehaus.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>jdcasey</id>
<name>John Casey</name>
<email>jdcasey@codehaus.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>handyande</id>
<name>Andrew Williams</name>
<email>andy@handyande.co.uk</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>rahul</id>
<name>Rahul Thakur</name>
<email>rahul.thakur.xdev@gmail.com</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>joakime</id>
<name>Joakim Erdfelt</name>
<email>joakim@erdfelt.com</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>olamy</id>
<name>Olivier Lamy</name>
<email>olamy@codehaus.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>hboutemy</id>
<name>Hervé Boutemy</name>
<email>hboutemy@apache.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>oleg</id>
<name>Oleg Gusakov</name>
<email>olegy@codehaus.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>vsiveton</id>
<name>Vincent Siveton</name>
<email>vsiveton@codehaus.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>krosenvold</id>
<name>Kristian Rosenvold</name>
<email>krosenvold@apache.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>agudian</id>
<name>Andreas Gudian</name>
<email>agudian@apache.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>khmarbaise</id>
<name>Karl Heinz Marbaise</name>
<email>khmarbaise@apache.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>michael-o</id>
<name>Michael Osipov</name>
<email>1983-01-06@gmx.net</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>belingueres</id>
<name>Gabriel Belingueres</name>
<email>belingueres@gmail.com</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>kwin</id>
<name>Konrad Windszus</name>
<email>kwin@apache.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>sjaranowski</id>
<name>Slawomir Jaranowski</name>
<email>sjaranowski@apache.org</email>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>slachiewicz</id>
<name>Sylwester Lachiewicz</name>
<email>slachiewicz@apache.org</email>
<organization>ASF</organization>
<roles>
<role>Developer</role>
</roles>
</developer>
<developer>
<id>gnodet</id>
<name>Guillaume Nodet</name>
<email>gnodet@apache.org</email>
<organization>ASF</organization>
<roles>
<role>Developer</role>
</roles>
</developer>
</developers>
<mailingLists>
<mailingList>
<name>Plexus and MojoHaus Development List</name>
<subscribe>mojohaus-dev+subscribe@googlegroups.com</subscribe>
<unsubscribe>mojohaus-dev+unsubscribe@googlegroups.com</unsubscribe>
<post>mojohaus-dev@googlegroups.com</post>
<archive>https://groups.google.com/forum/#!forum/mojohaus-dev</archive>
</mailingList>
</mailingLists>
<scm>
<connection>scm:git:https://github.com/codehaus-plexus/plexus-pom.git</connection>
<developerConnection>${project.scm.connection}</developerConnection>
<tag>plexus-27</tag>
<url>https://github.com/codehaus-plexus/plexus-pom/tree/${project.scm.tag}/</url>
</scm>
<issueManagement>
<system>github</system>
<url>https://github.com/codehaus-plexus/plexus-pom/issues</url>
</issueManagement>
<ciManagement>
<system>GitHub Actions</system>
<url>https://github.com/codehaus-plexus/plexus-pom/actions</url>
</ciManagement>
<distributionManagement>
<repository>
<id>sonatype-central-portal</id>
<name>Sonatype Central Portal</name>
<url>https://repo.maven.apache.org/maven2</url>
</repository>
<snapshotRepository>
<id>${plexusDistMgmtSnapshotsId}</id>
<name>${plexusDistMgmtSnapshotsName}</name>
<url>${plexusDistMgmtSnapshotsUrl}</url>
</snapshotRepository>
<!-- site distribution management must be override in child projects -->
<site>
<id>github:gh-pages</id>
<url>${project.scm.developerConnection}</url>
</site>
</distributionManagement>
<properties>
<javaVersion>8</javaVersion>
<minimalMavenBuildVersion>3.9.0</minimalMavenBuildVersion>
<minimalJavaBuildVersion>${javaVersion}</minimalJavaBuildVersion>
<maven.compiler.source>${javaVersion}</maven.compiler.source>
<maven.compiler.target>${javaVersion}</maven.compiler.target>
<maven.compiler.release>${javaVersion}</maven.compiler.release>
<!-- in order to restore default annotation processing behaviour, please override with empty value -->
<maven.compiler.proc>none</maven.compiler.proc>
<maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<plexusDistMgmtSnapshotsId>sonatype-central-portal</plexusDistMgmtSnapshotsId>
<plexusDistMgmtSnapshotsName>Sonatype Central Snapshots</plexusDistMgmtSnapshotsName>
<plexusDistMgmtSnapshotsUrl>https://central.sonatype.com/repository/maven-snapshots</plexusDistMgmtSnapshotsUrl>
<project.build.outputTimestamp>2026-08-18T20:43:31Z</project.build.outputTimestamp>
<gpg.useagent>true</gpg.useagent>
<spotless.action>apply</spotless.action>
<invoker.streamLogsOnFailures>true</invoker.streamLogsOnFailures>
<!-- managed versions, named version.<artifactId> as in org.apache:apache, so that a child
can override any single one of them from its own POM or from the command line -->
<version.apache-resource-bundles>1.8</version.apache-resource-bundles>
<version.extra-enforcer-rules>1.12.0</version.extra-enforcer-rules>
<version.junit5>5.14.4</version.junit5>
<version.maven-artifact-plugin>3.6.1</version.maven-artifact-plugin>
<version.maven-assembly-plugin>3.8.0</version.maven-assembly-plugin>
<version.maven-checkstyle-plugin>3.6.0</version.maven-checkstyle-plugin>
<version.maven-clean-plugin>3.5.0</version.maven-clean-plugin>
<version.maven-compiler-plugin>3.15.0</version.maven-compiler-plugin>
<version.maven-dependency-plugin>3.11.0</version.maven-dependency-plugin>
<version.maven-deploy-plugin>3.1.4</version.maven-deploy-plugin>
<version.maven-enforcer-plugin>3.6.3</version.maven-enforcer-plugin>
<version.maven-fluido-skin>2.1.0</version.maven-fluido-skin>
<version.maven-gpg-plugin>3.2.8</version.maven-gpg-plugin>
<version.maven-install-plugin>3.1.4</version.maven-install-plugin>
<version.maven-invoker-plugin>3.10.1</version.maven-invoker-plugin>
<version.maven-jar-plugin>3.5.1</version.maven-jar-plugin>
<version.maven-javadoc-plugin>3.12.0</version.maven-javadoc-plugin>
<version.maven-jxr-plugin>3.6.0</version.maven-jxr-plugin>
<version.maven-plugin-tools>3.15.2</version.maven-plugin-tools>
<version.maven-pmd-plugin>3.28.0</version.maven-pmd-plugin>
<version.maven-project-info-reports-plugin>3.9.0</version.maven-project-info-reports-plugin>
<version.maven-release-plugin>3.3.1</version.maven-release-plugin>
<version.maven-resources-plugin>3.5.0</version.maven-resources-plugin>
<version.maven-scm-publish-plugin>3.3.0</version.maven-scm-publish-plugin>
<version.maven-shared-resources>6</version.maven-shared-resources>
<version.maven-site-plugin>3.22.0</version.maven-site-plugin>
<version.maven-source-plugin>3.4.0</version.maven-source-plugin>
<!-- for surefire, failsafe and surefire-report -->
<version.maven-surefire>3.5.6</version.maven-surefire>
<version.njord>0.9.10</version.njord>
<!-- declared explicitly so spotless does not pick a palantir version based on the running JDK -->
<version.palantir-java-format>2.80.0</version.palantir-java-format>
<version.sisu-maven-plugin>1.1.0</version.sisu-maven-plugin>
<version.spotless-maven-plugin>3.9.0</version.spotless-maven-plugin>
<version.taglist-maven-plugin>3.2.2</version.taglist-maven-plugin>
<!-- njord configuration (https://maveniverse.eu/docs/njord/configuration/#njord-properties) -->
<njord.releaseUrl>njord:template:release-sca</njord.releaseUrl>
<njord.publisher>sonatype-cp</njord.publisher>
<njord.autoPublish>true</njord.autoPublish>
<njord.publishingType>automatic</njord.publishingType>
<njord.waitForStates>true</njord.waitForStates>
<njord.enabled>false</njord.enabled>
<!-- enable only during release: see plexus-release profile -->
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${version.junit5}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>eu.maveniverse.maven.plugins</groupId>
<artifactId>njord</artifactId>
<version>${version.njord}</version>
</plugin>
<!-- set versions of common plugins for reproducibility, ordered alphabetically -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<version>${version.maven-assembly-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>${version.maven-checkstyle-plugin}</version>
<configuration>
<!-- code style is owned by spotless/palantir, so checkstyle only runs the remaining
checks. maven_checks_nocodestyle.xml also has no RegexpHeader module, which is what
lets us drop the headerLocation that used to be fetched over HTTP from a git tag on
raw.githubusercontent.com on every build. -->
<configLocation>config/maven_checks_nocodestyle.xml</configLocation>
</configuration>
<dependencies>
<!-- MCHECKSTYLE-327: the maven_checks.xml was moved to a shared project -->
<dependency>
<groupId>org.apache.maven.shared</groupId>
<artifactId>maven-shared-resources</artifactId>
<version>${version.maven-shared-resources}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-clean-plugin</artifactId>
<version>${version.maven-clean-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${version.maven-compiler-plugin}</version>
<configuration>
<proc>${maven.compiler.proc}</proc>
<showDeprecation>${maven.compiler.showDeprecation}</showDeprecation>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>${version.maven-dependency-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<version>${version.maven-deploy-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<version>${version.maven-enforcer-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>${version.maven-gpg-plugin}</version>
<configuration>
<bestPractices>true</bestPractices>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>${version.maven-install-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${version.maven-jar-plugin}</version>
<configuration>
<archive>
<manifest>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-invoker-plugin</artifactId>
<version>${version.maven-invoker-plugin}</version>
<configuration>
<streamLogsOnFailures>${invoker.streamLogsOnFailures}</streamLogsOnFailures>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>${version.maven-javadoc-plugin}</version>
<configuration>
<quiet>true</quiet>
<locale>en</locale>
<!-- avoid noise for svn/gitpubsub -->
<notimestamp>true</notimestamp>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>${version.maven-jxr-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-plugin</artifactId>
<version>${version.maven-plugin-tools}</version>
<executions>
<execution>
<id>default-descriptor</id>
<phase>process-classes</phase>
<configuration>
<internalJavadocBaseUrl>./apidocs/</internalJavadocBaseUrl>
</configuration>
</execution>
<execution>
<id>generate-helpmojo</id>
<goals>
<goal>helpmojo</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-plugin-report-plugin</artifactId>
<version>${version.maven-plugin-tools}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>${version.maven-pmd-plugin}</version>
<configuration>
<targetJdk>${maven.compiler.source}</targetJdk>
<rulesets>
<ruleset>rulesets/maven.xml</ruleset>
</rulesets>
<excludeRoots>
<excludeRoot>${project.build.directory}/generated-sources/modello</excludeRoot>
<excludeRoot>${project.build.directory}/generated-sources/plugin</excludeRoot>
</excludeRoots>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>${version.maven-project-info-reports-plugin}</version>
<configuration>
<!-- do not make the published team page fetch avatars from a third party -->
<externalAvatarImages>false</externalAvatarImages>
<pluginManagementExcludes>
<exclude>org.eclipse.m2e:lifecycle-mapping</exclude>
</pluginManagementExcludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<version>${version.maven-release-plugin}</version>
<configuration>
<goals>deploy</goals>
<releaseProfiles>plexus-release</releaseProfiles>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${version.maven-resources-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-scm-publish-plugin</artifactId>
<version>${version.maven-scm-publish-plugin}</version>
<configuration>
<!-- using scm.developerConnection instead of distributionManagement.site.url -->
<pubScmUrl>${project.scm.developerConnection}</pubScmUrl>
<scmBranch>gh-pages</scmBranch>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>${version.maven-site-plugin}</version>
<configuration>
<!-- don't deploy site with maven-site-plugin -->
<skipDeploy>true</skipDeploy>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${version.maven-source-plugin}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${version.maven-surefire}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>${version.maven-surefire}</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${version.maven-surefire}</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>${version.taglist-maven-plugin}</version>
</plugin>
<plugin>
<groupId>org.eclipse.sisu</groupId>
<artifactId>sisu-maven-plugin</artifactId>
<version>${version.sisu-maven-plugin}</version>
<executions>
<execution>
<id>generate-index</id>
<goals>
<goal>main-index</goal>
<goal>test-index</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
<version>${version.spotless-maven-plugin}</version>
<configuration>
<java>
<!-- orders of used formatters are important -->
<!-- eg. palantir override importOrder, so should be first -->
<palantirJavaFormat>
<!-- declare the version so that spotless does not choose one based on the JDK
running the build: the formatter must produce identical output whether it is
run locally or in CI -->
<version>${version.palantir-java-format}</version>
</palantirJavaFormat>
<removeUnusedImports />
<importOrder>
<order>javax,java,,\#</order>
</importOrder>
</java>
<!-- accept all endings to support validations on top of source archives -->
<lineEndings>PRESERVE</lineEndings>
<pom>
<sortPom>
<expandEmptyElements>false</expandEmptyElements>
<!-- https://issues.apache.org/jira/browse/MRELEASE-1111 -->
<spaceBeforeCloseEmptyElement>true</spaceBeforeCloseEmptyElement>
<quiet>true</quiet>
</sortPom>
</pom>
<markdown>
<includes>
<include>**/*.md</include>
</includes>
<excludes>
<exclude>target/**</exclude>
<!-- site sources are Doxia input, not prose: flexmark rewrites the fence that closes
a YAML front matter block, which loses the page's title, author and date -->
<exclude>**/src/site/markdown/**</exclude>
</excludes>
<flexmark />
</markdown>
<upToDateChecking>
<enabled>true</enabled>
</upToDateChecking>
</configuration>
<executions>
<execution>
<id>spotless-check</id>
<goals>
<goal>${spotless.action}</goal>
</goals>
<phase>process-sources</phase>
</execution>
</executions>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.codehaus.mojo</groupId>
<artifactId>extra-enforcer-rules</artifactId>
<version>${version.extra-enforcer-rules}</version>
</dependency>
</dependencies>
<!-- one execution per rule, as in org.apache:apache, so that a child can relax or skip a
single check without losing the other two -->
<executions>
<execution>
<id>enforce-maven-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireMavenVersion>
<version>${minimalMavenBuildVersion}</version>
<message>This project requires at least Maven ${minimalMavenBuildVersion}</message>
</requireMavenVersion>
</rules>
</configuration>
</execution>
<execution>
<id>enforce-java-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireJavaVersion>
<version>${minimalJavaBuildVersion}</version>
</requireJavaVersion>
</rules>
</configuration>
</execution>
<execution>
<id>enforce-bytecode-version</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<enforceBytecodeVersion>
<maxJdkVersion>${maven.compiler.target}</maxJdkVersion>
<!-- test-only dependencies routinely ship newer bytecode than the target of the
artifact we publish, and they never end up on a consumer's classpath -->
<ignoredScopes>
<ignoredScope>test</ignoredScope>
</ignoredScopes>
</enforceBytecodeVersion>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<artifactId>maven-site-plugin</artifactId>
<executions>
<execution>
<id>attach-descriptor</id>
<goals>
<goal>attach-descriptor</goal>
</goals>
<inherited>false</inherited>
</execution>
</executions>
</plugin>
</plugins>
<extensions>
<extension>
<groupId>eu.maveniverse.maven.njord</groupId>
<artifactId>extension3</artifactId>
<version>${version.njord}</version>
</extension>
</extensions>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
<reportSets>
<reportSet>
<reports>
<report>index</report>
<report>summary</report>
<report>dependency-info</report>
<report>modules</report>
<report>licenses</report>
<report>team</report>
<report>scm</report>
<report>issue-management</report>
<report>mailing-lists</report>
<report>dependency-management</report>
<report>dependencies</report>
<report>dependency-convergence</report>
<report>ci-management</report>
<report>plugin-management</report>
<report>plugins</report>
<report>distribution-management</report>
</reports>
</reportSet>
</reportSets>
</plugin>
</plugins>
</reporting>
<profiles>
<profile>
<id>reporting</id>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-project-info-reports-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<configuration>
<alwaysGenerateSurefireReport>false</alwaysGenerateSurefireReport>
<alwaysGenerateFailsafeReport>false</alwaysGenerateFailsafeReport>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<configuration>
<skipEmptyReport>true</skipEmptyReport>
</configuration>
<reportSets>
<reportSet>
<id>default</id>
<reports>
<report>cpd</report>
<report>pmd</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<configuration>
<skipEmptyReport>true</skipEmptyReport>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<reportSets>
<reportSet>
<id>default</id>
<reports>
<report>jxr</report>
<report>test-jxr</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<reportSets>
<reportSet>
<id>default</id>
<reports>
<report>javadoc</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-artifact-plugin</artifactId>
<version>${version.maven-artifact-plugin}</version>
</plugin>
</plugins>
</reporting>
</profile>
<profile>
<id>plexus-release</id>
<properties>
<!-- use njord during release -->
<njord.enabled>true</njord.enabled>
</properties>
<build>
<plugins>
<!-- Create a source-release artifact that contains the fully buildable
project directory source structure. -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<dependencies>
<dependency>
<groupId>org.apache.apache.resources</groupId>
<artifactId>apache-source-release-assembly-descriptor</artifactId>
<version>${version.apache-resource-bundles}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>source-release-assembly</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
<configuration>
<runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
<descriptorRefs>
<descriptorRef>source-release</descriptorRef>
</descriptorRefs>
<tarLongFileMode>posix</tarLongFileMode>
</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>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<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>
</plugins>
</build>
</profile>
<profile>
<id>java17+</id>
<activation>
<jdk>[17,)</jdk>
</activation>
<build>
<!--- newer versions of plugins requires JDK 17 -->
<plugins>
<plugin>
<groupId>com.diffplug.spotless</groupId>
<artifactId>spotless-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>format-check</id>
<activation>
<property>
<name>env.CI</name>
</property>
</activation>
<properties>
<spotless.action>check</spotless.action>
</properties>
</profile>
<profile>
<id>format</id>
<activation>
<property>
<name>!env.CI</name>
</property>
</activation>
<properties>
<spotless.action>apply</spotless.action>
</properties>
</profile>
</profiles>
</project>