When the number of your projects rises, the need of factorization and rationalization arises. Two tools exist for this purpose: parent POMs and modules. Although both kinds are often merged, they belong to different registers.
Parent POMs, aka super POMs, offer a mechanism of inheritance. They allow you to factorize some data and constants, among which are the following few:
- Common dependencies: In other terms, the artifacts that part or all of children POMs will depend on. Inscribing them in a parent POM has the same effect as writing them several times (and possibly having to update them manually on upgrading).
- Properties, such as:
- Executions and IDs
- Common data: Developers' names, SCM address, ...