Search code examples
javamavendependencies

Maven not resolving given nested dependency version


I have given following module in module A:

<dependencies>
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>4.9.2</version>
    </dependency>
</dependecies>

And included module A in module B like:

<dependencies>
    <dependency>
        <groupId>com.example.test</groupId>
        <artifactId>A</artifactId>
        <version>1.01</version>
    </dependency>
</dependecies>

But still mvn dependency:tree is showing 3.14.9 version in module B, please help.

[INFO] com.example.test:B:jar:1.01
[INFO] +- com.example.test:A:jar:1.01:compile
[INFO] |  +- com.squareup.okhttp3:okhttp:jar:3.14.9:compile

I have also excluded it from all other modules that have 3.14.9 conflicts. I know I can add okhttp 4.9.2 explicitly in module B but there are many such modules, I don't want to add explicitly 4.9.2 version each time. For some reason, this is the case only for okhttp, rest other dependencies resolving given version


Solution

  • I solved the dependency resolution by enforcing dependency version in dependencyManagement in parent pom as mentioned in https://stackoverflow.com/a/2684291/5859017 in 2nd point. Maybe some dependency in parent pom was causing problem that has okhttp as transitive dependency.