DefaultArtifactResolver attaches the repositories to artifacts (AFAIK) to optimize the repo look ups.
Here I have a case
1) An artifact dependens on org.eclipse.equniox:app:1.2.0
2) org.eclipse.equinox:app depends on org.eclipse.equinox:registry:[3.4.0,4.0.0)
3) Both central repo and custom corporate repo has org.eclipse.equinox:registry
4) central repo has outdated versions
5) DefaultArtifactResolver for optimization attaches central repo (last one wins)
6) Central repo neither satisfies the version range nor - even if it did - has the latest version
7) dependency is not satisfied
8) Build halts
Attached patch is a dirty hack to disable signle repo downloand and checks all the repositories.