When selecting to fail upon dependency version conflicts gradle displays the conflicting version in such a case. However it does not show where these versions come from. They might hide in some transitive dependencies and it is not easily visible where.
One cannot use the ‘dependencies’ task, since gradle fails before displaying the tree.
Disabling the fail strategy and using the ‘dependencies’ task doesn’t help either, since gradle does not show the actual dependency (possibly marked with a [C] in case of a conflict) but whatever it decided the right dependency version should be. In that way the conflicting the dependency is shown everywhere with the same version number and it is not possible to decide which one is the one creating the conflict.
I would see two possible improvements:
- Always display the requested dependency version for a dependency in the ‘dependencies’ task. (eg. also ranges) * Either allow the ‘dependencies’ task even case of conflicts showing a marker somewhere. Or show the transitive path to the conflicting versions.