Every project in the Codehaus Plexus organization inherits this parent POM. It sets plugin versions, the Java and Maven baselines, formatting, reporting, and the release setup, so each project carries almost no build configuration of its own.
Maintained. A release follows whenever plugin or dependency updates accumulate, roughly every two months.
This POM is infrastructure for the Plexus projects rather than a general-purpose parent. It assumes publishing through the Sonatype Central Portal, site hosting on GitHub Pages, and the organization's shared CI workflow. You're welcome to use it, but it isn't designed to be neutral.
Add the following to your project's POM:
<parent>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus</artifactId>
<version>VERSION</version>
</parent>Replace VERSION with a released version from
Maven Central.
Your project inherits everything except the distributionManagement/site element. Each project overrides
that element to point at its own gh-pages branch.
The parent POM covers the following areas:
- Baselines: Java 8 through the
javaVersionproperty, Maven 3.9.0 as the minimum, and UTF-8 sources. - Enforcer: the Maven and JDK minimums, and a rule from
extra-enforcer-rulesthat rejects a dependency whose bytecode is newer than your compiler target. - Formatting: Spotless with palantir-java-format, sorted POM files, and flexmark for Markdown. Spotless rewrites your sources locally and checks them in CI.
- Reproducible builds: the
project.build.outputTimestampproperty is set, and Reproducible Central verifies the results. - Reporting: the
reportingprofile adds Javadoc, JXR, surefire, PMD/CPD, and taglist. - Releasing: the
plexus-releaseprofile adds GPG signing, sources, and a source-release assembly, and enables Njord to publish to Maven Central. - Version properties: every managed plugin version has a
version.<artifactId>property, so a child can pin a different version without redeclaring the plugin.
For an explanation of each area, see the project site, which also lists every managed plugin version.
To build a project that inherits this POM, you need Java 8 or later and Maven 3.9.0 or later. Version 27 raised the Maven minimum from 3.6.3; it applies to building the project, not to consuming its artifacts.
For the contribution process, see CONTRIBUTING.md.
A change here reaches every project in the organization, so a version bump that looks routine can break a downstream build. Say in your pull request description what you checked.
To report a security vulnerability, follow SECURITY.md rather than opening a public issue.