Maven Project Parent POM
This POM is the common parent of all of the Maven components in the Apache Maven project. Most of its contents are pinning down version numbers of plugins. It does provide minimal dependencyManagement for plexus-component and plugin-tools annotations.
This POM contains Maven developers information for the Project Team report, sorted by role and id. See the LDAP extract for more accurate committers and PMC members lists.
The reporting
Profile
This POM provides reporting
profile for rendering documentation during site generation:
mvn -Preporting site
See Plugins report for a list of configured report plugins.
The jdk-toolchain
Profile
This POM provides jdk-toolchain
profile to activate JDK selection as a toolchain with version requirement configured as minimum java version for the project.
The format
Profile
Since version 38 the format
profile can be used to explicitly format source files with spotless-maven-plugin according to Maven standards. This requires the phase process-sources. After applying bigger reformatting it is recommended to add or update a .git-blame-ignore-revs
file in the root of the repository containing a line with the SHA1 of the formatting commit to ignore those changes when using git blame
(or equivalent concepts). This is automatically considered by GitHub and can optionally be considered with local git blame
Site Publication
This POM prepares site publication to Apache Maven's site svnpubsub. Every inheriting POM needs to define maven.site.path
property with relative path to ${project.artifactId}-LATEST
publication uri, and define distributionManagement
to avoid automatic inheritance from parent:
<properties> <maven.site.path>xxx-archives/${project.artifactId}-LATEST</maven.site.path> </properties> <distributionManagement> <site> <id>apache.website</id> <url>scm:svn:https://svn.apache.org/repos/infra/websites/production/maven/components/${maven.site.path}</url> </site> </distributionManagement>
Once this is configured, the site can be published with:
mvn -Preporting site site:stage mvn scm-publish:publish-scm
See deploying Maven components reference documentation for more information.
History
As of version 38, this POM sets the Java source and target versions to 1.8. Thus, as any plugin (or other component) moved to version 38+ of this POM, it moves to requiring Java 1.8 (was Java 1.5 since version 21, Java 1.6 since version 27, and Java 1.7 since version 34).