It all starts with a project model
The project model describes your project. Specifically it defines
The reactor of modules that will be built when building your project Note: reactor is just the name that Maven has given to the list of modules that are being built | |
The packaging of each module | |
The dependencies of each module | |
Any additional plugins that are needed to build each module |
Each module's packaging has an associated lifecycle
The lifecycle defines the default plugins that are used to build a specific packaging.
The list of modules in the reactor is sorted in order to ensure that any dependencies that will be created by the reactor will be built before they are needed by other modules in the reactor
The build plan is then populated for each module using the lifecycle and the plugin information from the model
Maven then starts executing the build plan and building your project, downloading dependencies that are not produced by the reactor.