Replace BOMs in parent with inlined dependency mgmt.
Basics
Logistics
Basics
Logistics
Description
The use of BOMs to manage our own dependencies is a failure because BOMs used across multiple projects do not result in expected behavior when it comes to overriding versions at higher layers. You get at best a mixture of jars and at worst you only get the versions locked in the lower level dependency’s parent.
Inlining the dependencies results in expected, relatively predictable behavior at a given project’s level based on the version properties it defines itself for each dependency.
The cost is some bloat, and moreover a maintenance hassle when adding modules to projects. It’s unavoidable.
The use of BOMs to manage our own dependencies is a failure because BOMs used across multiple projects do not result in expected behavior when it comes to overriding versions at higher layers. You get at best a mixture of jars and at worst you only get the versions locked in the lower level dependency’s parent.
Inlining the dependencies results in expected, relatively predictable behavior at a given project’s level based on the version properties it defines itself for each dependency.
The cost is some bloat, and moreover a maintenance hassle when adding modules to projects. It’s unavoidable.