The dependencyManagement does not work for transient dependencies. The specified version is ignored.
Main POM defines commons-digester-1.6 and commons-beanutils-1.7.0, A-SNAPSHOT and B-SNAPSHOT
Project A is child of Main and depends directly on commons-beanutils (version inherited from Main)
Project B is child of Main and depends directly on commons-digester (version inherited from Main)
Project C is child of Main and depends directly on A & B (versions inherited from Main)
A is compiled and tests are run using commons-beanutils-1.7.0
B is compiled and tests are run using commons-digester-1.6 and commons-beanutils-1.6, since digester is dependend on this
C is compiled and tests are run using commons-beanutils-1.7.0
Integration tests of B did not verify, that B is behaving as expected in this scenario. B might fail with 1.7.0 and it is not even recognized.
If I add beanutils also as direct dependency to B, it works fine, but then are transitive dependency useless. It should be possible to define at least in the dependencyManagement, that the versions of transient dependencies also defined in the dependencyManagement have priority.