We have a modular project and dependency looks like this
core
level_1-app depends on core
level_2-app depends on level_1-app
level_3_1-app depends on level_2-app level_3_2-app depends on level_2-app level_3_3-app depends on level_2-app level_3_4-app depends on level_2-app
facade-app depends on level_3_1-app, level_3_2-app, level_3_3-app, level_3_4-app
We still don't have any semver versioning for modules so currently we decided that transitive versions should be always the same for all projects(I mean only our projects. For other libraries we don't want to have such kinda of restriction).
On facade-app we want to check that all transitive dependencies have the same version of core, level_1-app and level_2-app. And if it is not - build should fail or at least warn.
Is there any gradle plugin that could do it or should we implement our own?