Konubinix' opinionated web of thoughts

Maven Dependency Mechanism

Fleeting

Maven – Introduction to the Dependency Mechanism

Managing dependencies for multi-module

Dependency mediation - this determines what version of an artifact will be chosen when multiple versions are encountered as dependencies

Dependency management - this allows project authors to directly specify the versions of artifacts to be used when they are encountered in transitive dependencies or in dependencies where no version has been specified.

When you have a set of projects that inherit from a common parent, it’s possible to put all information about the dependency in the common POM and have simpler references to the artifacts in the child POMs.

very important use of the dependency management section is to control the versions of artifacts used in transitive dependencies

The pattern below illustrates how a “bill of materials” (BOM) can be created for use by other projects

The root of the project is the BOM POM. It defines the versions of all the artifacts that will be created in the library. Other projects that wish to use the library should import this POM into the dependencyManagement section of their POM.

https://maven.apache.org/guides/introduction/introduction-to-dependency-mechanism.html#Importing_Dependencies

Here it says that the BOM is actually the root POM of the project.

The parent subproject has the BOM POM as its parent. It is a normal multiproject pom