Maurice Zeijen created MNG-8581:
-----------------------------------

             Summary: 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: 4.0.0-rc-2, 3.9.9
            Reporter: Maurice Zeijen


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)

Reply via email to