I tried upgrading our project from 3.4.1 to 4.0 and got a compilation error.
We have two separate sub-projects in our build that use different versions of the same 3rd party dependency.
If I understood it correctly, Gradle 4.0 does not respect the configuration and uses the more recent version of the two specified for both of the projects causing the said error.
sub-project A depends on X:Y:1.0
sub-project B depends on X:Y:1.5
With Gradle 4.0 it seems that X.Y.1.5 is used to compile both of the sub-projects.
I checked dependencies report and it looks identical for Gradle 3.4.1 and 4.0