The BasePOM project aims to make using Apache Maven as a build tool painless. It provides a set of well known plugins for Apache Maven with an opinionated base configuration and a number of configuration options. It is aiming at Java projects but can easily be extended for other languages that are supported by Apache Maven.
It provides base configurations for unified, organization-wide build setups and supports simple project setups and complex Multi Module project use cases.
BasePOM and its private predecessors have been in use in many companies and open-source projects since 2010.
Core features of BasePOM:
Opinionated configuration. BasePOM Parent POMs configure Maven Plugins with reasonable defaults
Property based customization. BasePOM Parent POMs expose a number of properties that can be customized in Child POMs or from the command line
Profile activation. BasePOM Parent POMs contain a number of profiles that activate under specific conditions and customize build steps or activate specific plugins
Policy modifications. Any aspect of a BasePOM Parent POM can be customized through Policy POMs
Full documentation and user guide
# install BasePOMs locally
% make install
# deploy BasePOMs to remote (snapshot) repository
% make deploy
# create local docs in docs/target/site
% make docs
# deploy documentation to the basepom.org site
% make deploy-docs
# create a release to OSS
% make release
The BasePOM code is licensed under the Apache Software License v2 (ASLv2)
(C) 2013-2022 Henning Schmiedehausen