Say you have a project that has 3 dependecies A, B and C, amongst which 2 of them have a dependency D but with a different version:
A -> D v2.1
B -> D v3
C (has no transitive dependency to D)
In the project, you call a class that exists in D v3 but not in D v2.1.
-> If you launch "mvn clean compile" with M2.0.4, the build is successful, but not with M2.0.5.
And the most surprising: if you remove dependency C, then both builds break...
I attached a test project that reproduces the bug.