You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Matthias Bünger (Jira)" <ji...@apache.org> on 2025/02/14 16:29:00 UTC

[jira] [Closed] (MNG-8581) Dependency resolution difference between Maven 3 and 4

     [ https://issues.apache.org/jira/browse/MNG-8581?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matthias Bünger closed MNG-8581.
--------------------------------
    Resolution: Not A Problem

> Dependency resolution difference between Maven 3 and 4
> ------------------------------------------------------
>
>                 Key: MNG-8581
>                 URL: https://issues.apache.org/jira/browse/MNG-8581
>             Project: Maven
>          Issue Type: Bug
>          Components: Dependencies
>    Affects Versions: 3.9.9, 4.0.0-rc-2
>            Reporter: Maurice Zeijen
>            Priority: Major
>
> h2. Problem
> I discovered a dependency resolution difference between Maven 3.9.9 and Maven 4.0.0-rc-2. 
> When adding the dependency _io.fabric8:kubernetes-httpclient-okhttp:6.13.4_ Maven 3 and 4 will resolve different versions of the transitive _com.squareup.okio:okio_ dependency.
> Resolved versions of Okio:
> Maven 3: *_1.15.0_*
> Maven 4: *_1.17.6_*
> h2. Effect
> Due to this unexpected version resolution difference my application failed due to an MethodNotFoundException with Maven 4 that doesn't occur with Maven 3.{*}{*}
> h2. Investigation
> I did a small investigation where these versions are coming from. When depending on _io.fabric8:kubernetes-httpclient-okhttp:6.13.4_ you get the following dependency path to the Okio dependency:
>  * _io.fabric8:kubernetes-httpclient-okhttp:6.13.4_
>  **  _com.squareup.okhttp3:okhttp:3.12.12_
>  *** _com.squareup.okio:okio_
> The Okio version is defined in two places within this three and there parents.
>  * The {_}io.fabric8:{_}{_}kubernetes-httpclient-okhttp{_} has the io.fabric8:kubernetes-client-project parent, which defines that the okio version should be *1.17.6*
>  * The _com.squareup.okhttp3:okhttp_ has the _com.squareup.okhttp3:parent_ project parent, which defines that the okio version should be *1.15.0*
> h2. *Reproduction*
> pom.xml
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>my.group</groupId>
>     <artifactId>my-artifact</artifactId>
>     <version>1.0.0</version>
>     <packaging>jar</packaging>
>     <dependencies>
>         <dependency>
>             <groupId>io.fabric8</groupId>
>             <artifactId>kubernetes-httpclient-okhttp</artifactId>
>             <version>6.13.4</version>
>         </dependency>
>     </dependencies>
> </project> {code}
> Run _mvn dependency:tree_ with Maven 3.9.9 and Maven 4.0.0-rc-2 and look at the version of the _com.squareup.okio:okio_ dependency.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)