Gradle picks the older version of dependency when resolving conflict


#1

Hi,

I’m facing the following issue:

Few of dependencies in my project use different versions of the Jackson library. The project itself doesn’t define dependency on it. However when I execute the

./gradlew dependencies

command it seems that Gradle decides to resolve the conflict by using the older version of the library.

| ±-- com.fasterxml.jackson.datatype:jackson-datatype-joda:2.7.3 -> 2.6.5

This breaks my app at the runtime. Could you point me to the documentation that explains this behavior? I read that by default Gradle should use the latest version of the dependency. However it does not appear to be the case here.

I’m using Gradle 2.12 (same thing happened with 2.11).

What’s interesting is that when I explicitly state the dependency version in my project to be 2.7.3, Gradle will respect that. By declaring the dependency I mean adding this line to the project’s build.gradle:

compile group: “com.fasterxml.jackson.datatype”, name: “jackson-datatype-joda”, version: “2.7.3”


#2

I figured out what the issue was. It was not gradle’s fault. One of the plugins (namely “spring-boot-gradle-plugin”) overrides dependencies with it’s “managed” versions. I did identify the issue by enabling gradle’s debug mode and searching for jackson-datatype-joda -related messages.