▲ | Joker_vD 4 days ago | ||||||||||||||||
> If that version doesn’t work, you can try another one. And how will this look like, if your app doesn't have library C mentioned in its dependencies, only libraries A and B? You are prohibited from answering "well, just specify all the transitive dependencies manually" because it's precisely what a lockfile is/does. | |||||||||||||||||
▲ | tonsky 4 days ago | parent | next [-] | ||||||||||||||||
Maven's version resolution mechanism determines which version of a dependency to use when multiple versions are specified in a project's dependency tree. Here's how it works: - Nearest Definition Wins: When multiple versions of the same dependency appear in the dependency tree, the version closest to your project in the tree will be used. - First Declaration Wins: If two versions of the same dependency are at the same depth in the tree, the first one declared in the POM will be used. | |||||||||||||||||
| |||||||||||||||||
▲ | deredede 4 days ago | parent | prev [-] | ||||||||||||||||
It's not "all the transitive dependencies". It's only the transitive dependencies you need to explicitly specify a version for because the one that was specified by your direct dependency is not appropriate for X reason. |