> Have you tried excluding the conflicting transitive dependencies and adding them back with the correct version?
That's what I've done so far. I have two problems with this solution: 1) I have to do some additional work (this affect only my use case so it might be not that important) 2) I don't know if the dependency has been tested with the particular version of the library I'm going to use Using a BOM or applying this change in the pom of org.neo4j:neo4 would solve the problem, I guess. By the way, I would be happy to create a patch for this. Davide On Tue, Oct 21, 2014 at 4:03 PM, Anders Nawroth <[email protected]> wrote: > Have you tried excluding the conflicting transitive dependencies and > adding them back with the correct version? > > /anders > > > On Tuesday, October 21, 2014 12:11:18 PM UTC+2, Davide D'Alto wrote: > >> > However, we do see in several places in your output that you have >> mention of Neo4j 2.0.3 and Neo4j 2.1.5. Isn't this as simple as you having >> upgraded from 2.0.3 to 2.1.5, and the older version is still in the local >> maven repository, and maven is correctly omitting it as a duplicate? >> Perhaps if you deleted .m2/repository and re-ran maven, the conflicts would >> be cleared up? >> >> Nope, this is the dependencies tree of org.neo4j:neo4j:jar:2.1.5: >> >> [INFO] +*- org.neo4j:neo4j:jar:2.1.5:compile* >> [INFO] | +- org.neo4j:neo4j-kernel:jar:2.1.5:compile >> [INFO] | | +- org.neo4j:neo4j-primitive-collections:jar:2.1.5:compile >> [INFO] | | \- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1. >> 1:compile >> [INFO] | +- org.neo4j:neo4j-lucene-index:jar:2.1.5:compile >> [INFO] | | +- (org.neo4j:neo4j-kernel:jar:2.1.5:compile - omitted for >> duplicate) >> [INFO] | | \- org.apache.lucene:lucene-core:jar:3.6.2:compile >> [INFO] | +- *org.neo4j:neo4j-graph-algo:jar:2.1.5:compile* >> [INFO] | | \- (org.neo4j:neo4j-kernel:jar:2.1.5:compile - omitted for >> duplicate) >> [INFO] | +- org.neo4j:neo4j-udc:jar:2.1.5:compile >> [INFO] | | \- (org.neo4j:neo4j-kernel:jar:2.1.5:compile - omitted for >> duplicate) >> [INFO] | +- org.neo4j:neo4j-graph-matching:jar:2.1.5:compile >> [INFO] | | \- (org.neo4j:neo4j-kernel:jar:2.1.5:compile - omitted for >> duplicate) >> [INFO] | *+- org.neo4j:neo4j-cypher:jar:2.1.5:compile* >> [INFO] | | +- (org.neo4j:neo4j-kernel:jar:2.1.5:compile - omitted for >> duplicate) >> [INFO] | | +- (org.neo4j:neo4j-lucene-index:jar:2.1.5:compile - omitted >> for duplicate) >> [INFO] | | +- (org.neo4j:neo4j-graph-matching:jar:2.1.5:compile - >> omitted for duplicate) >> [INFO] | | +- (org.neo4j:neo4j-graph-algo:jar:2.1.5:compile - omitted >> for duplicate) >> [INFO] | | *+*- org.neo4j:neo4j-cypher-commons:jar:2.1.5:compile >> [INFO] | | | +- (org.neo4j:neo4j-kernel:jar:2.1.5:compile - omitted >> for duplicate) >> [INFO] | | | +- (com.googlecode.concurrentlinkedhashmap: >> concurrentlinkedhashmap-lru:jar:1.3.1:compile - omitted for duplicate) >> [INFO] | | | \- (org.scala-lang:scala-library:jar:2.10.4:compile - >> omitted for duplicate) >> [INFO] | | * +- org.neo4j:neo4j-cypher-compiler-1.9:jar:2.0.3:compile* >> [INFO] | | | +- (org.neo4j:neo4j-kernel:jar:2.0.3:compile - omitted >> for conflict with 2.1.5) >> [INFO] | | | +- (org.neo4j:neo4j-lucene-index:jar:2.0.3:compile - >> omitted for conflict with 2.1.5) >> [INFO] | | | +- (org.neo4j:neo4j-graph-matching:jar:2.0.3:compile - >> omitted for conflict with 2.1.5) >> [INFO] | | | +- *(org.neo4j:neo4j-graph-algo:jar:2.0.3:compile - >> omitted for conflict with 2.1.5)* >> [INFO] | | | \- (org.scala-lang:scala-library:jar:2.10.3:compile - >> omitted for conflict with 2.10.4) >> [INFO] | | +- org.neo4j:neo4j-cypher-compiler-2.0:jar:2.0.3:compile >> [INFO] | | | +- org.parboiled:parboiled-scala_2.10:jar:1.1.6:compile >> [INFO] | | | | \- (org.parboiled:parboiled-core:jar:1.1.6:compile - >> omitted for duplicate) >> [INFO] | | | +- net.sf.opencsv:opencsv:jar:2.0:compile >> [INFO] | | | \- (org.scala-lang:scala-library:jar:2.10.3:compile - >> omitted for conflict with 2.10.4) >> [INFO] | | +- org.neo4j:neo4j-cypher-compiler-2.1:jar:2.1.5:compile >> [INFO] | | | +- (org.parboiled:parboiled-scala_2.10:jar:1.1.6:compile >> - omitted for duplicate) >> [INFO] | | | +- (net.sf.opencsv:opencsv:jar:2.3:compile - omitted for >> conflict with 2.0) >> [INFO] | | | \- (org.scala-lang:scala-library:jar:2.10.4:compile - >> omitted for duplicate) >> [INFO] | | +- com.googlecode.concurrentlinkedhashmap: >> concurrentlinkedhashmap-lru:jar:1.3.1:compile >> [INFO] | | \- org.scala-lang:scala-library:jar:2.10.4:compile >> [INFO] | \- org.neo4j:neo4j-jmx:jar:2.1.5:compile >> >> If I'm not wrong neo4j-graph-algo, for example, get included with two >> different versions 2.0.3 and 2.1.5 >> >> >> >> On Tue, Oct 21, 2014 at 10:46 AM, Davide D'Alto <[email protected]> >> wrote: >> >>> Hi Craig, >>> the problem for me is that they have a transitive dependency with a >>> different version of some libraries, like scala-library for example: >>> >>> org.neo4j:neo4j-cypher-compiler-1.9:jar:2.0.3 requires >>> org.scala-lang:scala-library:jar:2.10.3:compile >>> >>> while >>> >>> org.neo4j:neo4j-cypher:jar:2.1.5:compile requires >>> org.scala-lang:scala-library:jar:2.10.4:compile >>> >>> Basically, I'm wondering if there is a particular reason for them to >>> require different versions of the same library since it seems that using >>> the most up to date is ok for both >>> >>> >>> On Tue, Oct 21, 2014 at 10:31 AM, Craig Taverner <[email protected]> >>> wrote: >>> >>>> Hi, >>>> >>>> My understanding is that these are not two versions of the same library >>>> but the same version of two different libraries: >>>> >>>> - org.neo4j:neo4j-cypher-compiler-*1.9*:jar:*2.0.3* >>>> - org.neo4j:neo4j-cypher-compiler-*2.0*:jar:*2.0.3* >>>> >>>> The version of both is *2.0.3*, the same. The libraries however have >>>> different *names* (one is named 1.9 and one is named 2.0). Hence two >>>> different libraries. Both part of Neo4j 2.0.3. This means, as Anders said, >>>> that Neo4j 2.0.3 contains two levels of support for cypher. >>>> >>>> However, we do see in several places in your output that you have >>>> mention of Neo4j 2.0.3 and Neo4j 2.1.5. Isn't this as simple as you having >>>> upgraded from 2.0.3 to 2.1.5, and the older version is still in the local >>>> maven repository, and maven is correctly omitting it as a duplicate? >>>> Perhaps if you deleted .m2/repository and re-ran maven, the conflicts would >>>> be cleared up? >>>> >>>> Regards, Craig >>>> >>>> On Tue, Oct 21, 2014 at 11:18 AM, Davide D'Alto <[email protected]> >>>> wrote: >>>> >>>>> Right, >>>>> I didn't explain my problem properly, sorry. >>>>> >>>>> In our project we are using the maven enforcer plugin ( >>>>> http://maven.apache.org/enforcer/maven-enforcer-plugin/) to check >>>>> when two dependencies refer to different version of the same library. >>>>> With Neo4j this rule fails. >>>>> >>>>> Maven will try to solve this conflict quietly, but you can see them >>>>> running >>>>> >>>>> mvn dependency:tree -Dverbose=true >>>>> >>>>> These are the conflicts caused by >>>>> "org.neo4j:neo4j-cypher-compiler-1.9:jar:2.0.3" >>>>> and "org.neo4j:neo4j-cypher-compiler-2.0:jar:2.0.3": >>>>> >>>>> [INFO] | | | +- (org.neo4j:neo4j-kernel:jar:2.0.3:compile - >>>>> omitted for conflict with 2.1.5) >>>>> [INFO] | | | +- (org.neo4j:neo4j-lucene-index:jar:2.0.3:compile - >>>>> omitted for conflict with 2.1.5) >>>>> [INFO] | | | +- (org.neo4j:neo4j-graph-matching:jar:2.0.3:compile >>>>> - omitted for conflict with 2.1.5) >>>>> [INFO] | | | +- (org.neo4j:neo4j-graph-algo:jar:2.0.3:compile - >>>>> omitted for conflict with 2.1.5) >>>>> [INFO] | | | \- (org.scala-lang:scala-library:jar:2.10.3:compile - >>>>> omitted for conflict with 2.10.4) >>>>> [INFO] | | | \- (org.scala-lang:scala-library:jar:2.10.3:compile - >>>>> omitted for conflict with 2.10.4) >>>>> [INFO] | | | +- (net.sf.opencsv:opencsv:jar:2.3:compile - omitted >>>>> for conflict with 2.0) >>>>> >>>>> Is there any particular reason to use different versions of the same >>>>> library? >>>>> >>>>> >>>>> On Mon, Oct 20, 2014 at 11:20 PM, Anders Nawroth < >>>>> [email protected]> wrote: >>>>> >>>>>> How did you add org.neo4j:neo4j to the project? >>>>>> Any duplicates or conflicts should be resolved automatically, at >>>>>> least when using Maven. >>>>>> The neo4j-cypher-compiler-* modules are special -- they add support >>>>>> for the syntax from previous versions and are not duplicates. >>>>>> >>>>>> This is the final dependency tree I get, and there's no duplicates >>>>>> left in it: >>>>>> >>>>>> org.neo4j:neo4j:jar:2.1.5 >>>>>> +- org.neo4j:neo4j-kernel:jar:2.1.5:compile >>>>>> | +- org.neo4j:neo4j-primitive-collections:jar:2.1.5:compile >>>>>> | \- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1. >>>>>> 1:compile >>>>>> +- org.neo4j:neo4j-lucene-index:jar:2.1.5:compile >>>>>> | \- org.apache.lucene:lucene-core:jar:3.6.2:compile >>>>>> +- org.neo4j:neo4j-graph-algo:jar:2.1.5:compile >>>>>> +- org.neo4j:neo4j-udc:jar:2.1.5:compile >>>>>> +- org.neo4j:neo4j-graph-matching:jar:2.1.5:compile >>>>>> +- org.neo4j:neo4j-cypher:jar:2.1.5:compile >>>>>> | +- org.neo4j:neo4j-cypher-commons:jar:2.1.5:compile >>>>>> | +- org.neo4j:neo4j-cypher-compiler-1.9:jar:2.0.3:compile >>>>>> | +- org.neo4j:neo4j-cypher-compiler-2.0:jar:2.0.3:compile >>>>>> | | +- org.parboiled:parboiled-scala_2.10:jar:1.1.6:compile >>>>>> | | | \- org.parboiled:parboiled-core:jar:1.1.6:compile >>>>>> | | \- net.sf.opencsv:opencsv:jar:2.0:compile >>>>>> | +- org.neo4j:neo4j-cypher-compiler-2.1:jar:2.1.5:compile >>>>>> | +- com.googlecode.concurrentlinkedhashmap: >>>>>> concurrentlinkedhashmap-lru:jar:1.3.1:compile >>>>>> | \- org.scala-lang:scala-library:jar:2.10.4:compile >>>>>> +- org.neo4j:neo4j-jmx:jar:2.1.5:compile >>>>>> \- com.sun.tools:tools:jar:1.7:system >>>>>> >>>>>> I don't know if the additional cypher-compiler libs could be made >>>>>> optional, I've never looked into how they are loaded. >>>>>> >>>>>> /anders >>>>>> >>>>>> >>>>>> On Mon, Oct 20, 2014 at 7:28 PM, Davide D'Alto <[email protected]> >>>>>> wrote: >>>>>> >>>>>>> Hi all, >>>>>>> when I include the artifact org.neo4j:neo4j in the project, >>>>>>> several other dependencies get added twice with different versions. >>>>>>> >>>>>>> This seems caused by the following dependencies: >>>>>>> neo4j-cypher-compiler-1.9 and neo4j-cypher-compiler-2.0. >>>>>>> >>>>>>> For example I have: >>>>>>> org.neo4j:neo4j-lucene-index:2.0.3 and 2.1.5 >>>>>>> net.sf.opencsv:opencsv:2.3 and 2.0 >>>>>>> org.scala-lang:scala-library 2.10.4 and 2.10.3 >>>>>>> >>>>>>> and so on ... >>>>>>> >>>>>>> Wouldn't be possible to uniform the dependencies and select just one >>>>>>> version or at least make the cypher compiler libraries optional? >>>>>>> On exception at start up is thrown if I remove them. >>>>>>> >>>>>>> Thanks, >>>>>>> Davide >>>>>>> >>>>>>> -- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "Neo4j" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected]. >>>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>>> >>>>>> >>>>>> -- >>>>>> You received this message because you are subscribed to a topic in >>>>>> the Google Groups "Neo4j" group. >>>>>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>>>>> topic/neo4j/fDLiKEnKnAM/unsubscribe. >>>>>> To unsubscribe from this group and all its topics, send an email to >>>>>> [email protected]. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Neo4j" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> -- >>>> You received this message because you are subscribed to a topic in the >>>> Google Groups "Neo4j" group. >>>> To unsubscribe from this topic, visit https://groups.google.com/d/ >>>> topic/neo4j/fDLiKEnKnAM/unsubscribe. >>>> To unsubscribe from this group and all its topics, send an email to >>>> [email protected]. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> >> -- > You received this message because you are subscribed to a topic in the > Google Groups "Neo4j" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/neo4j/fDLiKEnKnAM/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Neo4j" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
