The sample project shows a usage of build ranges that should result in a build failure when you try to build project D.
Because project D transitively depends on two different versions of project A 1.0 and 1.1.
These versions are called out absolutely (using ranges) hence maven should not be able to build the project.
This fails correctly in maven 2.2.1
However the project builds successfully in maven 3.0
Maven 3.0 should also fail to build.
Note: I have included two copies of the pom file for project A so that you can build both of them without needing to edit the version.
Build order is: A-1.0, A-1.1, B, C, D