[ https://issues.apache.org/jira/browse/IGNITE-7799?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16374311#comment-16374311 ]
Valentin Kulichenko commented on IGNITE-7799: --------------------------------------------- I believe Maven will use the one provided explicitly in the POM in this case, not transitive one. Did you actually expirience one of these issues? > Dependency Conflict : Conlicting JARs org.apache.httpcomponents:httpclient > -------------------------------------------------------------------------- > > Key: IGNITE-7799 > URL: https://issues.apache.org/jira/browse/IGNITE-7799 > Project: Ignite > Issue Type: Bug > Components: aws > Affects Versions: 2.5 > Reporter: PandaMonkey > Priority: Major > Fix For: 3.0 > > > Hi, by analyzing ignite-master\modules\aws\pom.xml, I found that there are > two versions of *org.apache.httpcomponents:httpclient*. Their introduced path > is: > # > org.apache.ignite:ignite-aws:2.5.0-SNAPSHOT::null->com.amazonaws:aws-java-sdk-core:1.11.75::compile->org.apache.httpcomponents:httpclient:4.5.2::compile > # > org.apache.ignite:ignite-aws:2.5.0-SNAPSHOT::null->org.apache.httpcomponents:httpclient:4.5.1::compile > Of them, httpclient:4.5.2 is the transitive dependency, and httpclient:4.5.1 > is the direct dependency. By further analyzing the source code, we found they > have different features. As the JVM only load the classes present first on > the classpath and shadow the other duplicate ones with the same names. The > dependency conflict problem brings high risks of "*NotClassDefFoundError:*" > or "*NoSuchMethodError*" issues at runtime. Please notice this problem. *The > solution is upgrading httpclient from 4.5.1 to 4.5.2.* > > ===============projectPath->org.apache.ignite:ignite-aws:2.5.0-SNAPSHOT@D:\ws\snapshot\ignite-master\modules\aws\pom.xml > > =======conflict:<org.apache.httpcomponents:httpclient:4.5.2::compile><org.apache.httpcomponents:httpclient:4.5.1::compile> > size:2 > > org.apache.ignite:ignite-aws:2.5.0-SNAPSHOT::null->com.amazonaws:aws-java-sdk-core:1.11.75::compile->org.apache.httpcomponents:httpclient:4.5.2::compile > > org.apache.ignite:ignite-aws:2.5.0-SNAPSHOT::null->org.apache.httpcomponents:httpclient:4.5.1::compile > *====Risk for ClassNotFoundException/NotClassDefFoundError:* > a) Classes that only exist in org.apache.httpcomponents:httpclient:4.5.1: > org.apache.http.client.utils.DateUtils$DateFormatHolder$1 > b) Classes that only exist in org.apache.httpcomponents:httpclient:4.5.2: > org.apache.http.conn.ssl.DefaultHostnameVerifier$TYPE > org.apache.http.impl.client.DefaultClientConnectionReuseStrategy > org.apache.http.conn.ssl.DefaultHostnameVerifier$1 > *====Risk for NoSuchMethodException/NoSuchMethodError:* > Methods that only exist in org.apache.httpcomponents:httpclient:4.5.2: > <org.apache.http.impl.cookie.PublicSuffixDomainFilter: java.util.Map > createLocalDomainMap()> > <org.apache.http.impl.cookie.IgnoreSpec: boolean > match(org.apache.http.cookie.Cookie,org.apache.http.cookie.CookieOrigin)> > <org.apache.http.impl.client.HttpClientBuilder: > org.apache.http.impl.client.HttpClientBuilder > setDnsResolver(org.apache.http.conn.DnsResolver)> > -- This message was sent by Atlassian JIRA (v7.6.3#76005)