A multi-module project is built from an aggregator POM that manages a group of submodules. In most cases, the aggregator is located in the project's root directory and must have packaging of type pom. Now, the submodules are regular Maven projects, and they can be built separately or through the aggregator POM. By building the project through the aggregator POM, each project that has a packaging type different than pom will result in a built archive file. Parent POM Maven supports inheritance in a way that each pom.xml file has the implicit parent POM, it's called Super POM and can be located in the Maven binaries. These two files are merged by Maven and form the Effective POM. Hence, we can create our own pom.xml file which will serve us as the parent project. Then, we can include there all configurations with dependencies and set this as the parent of our child modules, so they'll inherit from it. Besides the inheritance, Maven provides the notion of aggregation. Parent ...