Assuming there is a version that works for both dependencies, you can
manually fix it in your own project.clj. Your own direct dependencies
will override transitive ones.

Otherwise, as far as I can tell, you're stuck. Maybe you can try using
an older clj-time?

On 29 June 2015 at 21:00,  <gingersafflo...@gmail.com> wrote:
>
>
> I think I have a conflict involving different libraries using different
> versions of JodaTime. I have no idea how to fix this.
>
> I have nearly the same problem as this:
>
> http://stackoverflow.com/questions/21487476/maven-build-throws-jodatime-exception-at-runtime
>
> However, in my case, I'm building a web app in Clojure, whereas my co-worker
> is building our Natural Language Processing engine in Java. The NLP is
> included as a jar. We had this working for a few weeks, but my co-worker has
> added some new dependencies that are now giving us this error.
>
> This person also reports a similar error:
>
>  Error creating edu.stanford.nlp.time.TimeExpressionExtractorImpl
>
> See here:
>
> http://mail.wso2.org/mailarchive/dev/2014-September/035337.html
>
> with an answer here:
>
> http://mail.wso2.org/mailarchive/dev/2014-September/035341.html
>
> The issue in both cases seems to be a version conflict in different
> libraries, but I have no idea how to resolve this. In the Clojure app we use
> clj-time, which apparently uses Joda-Time 2.6, whereas the Stanford Core NLP
> libraries seem to use Joda 2.1. Is there anyway to resolve that conflict?
>
> Both pieces of software compile, and the Clojure app can start, with the NLP
> engine included. However, the Clojure app then calls a "start" method in the
> NLP engine, which causes the NLP engine to load the lexers and parsers that
> it needs. We then get these messages and errors:
>
> Loading classifier from
> /home/safflower/apricots/dependencies/english.muc.7class.caseless.distsim.crf.ser.gz
> ... done [1.5 sec].
>
> Loading parser from serialized file
> edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz ...  done [0.3 sec].
>
> Loading parser from serialized file
> edu/stanford/nlp/models/lexparser/englishPCFG.caseless.ser.gz ...  done [1.1
> sec].
>
> Adding annotator tokenize
>
> TokenizerAnnotator: No tokenizer type provided. Defaulting to PTBTokenizer.
>
> Adding annotator ssplit
>
> Adding annotator pos
>
> Reading POS tagger model from
> edu/stanford/nlp/models/pos-tagger/english-left3words/english-left3words-distsim.tagger
> ... done [1.9 sec].
>
> Adding annotator lemma
>
> Adding annotator ner
>
> Loading classifier from
> /home/safflower/apricots/dependencies/english.all.7class.distsim.crf.ser.gz
> ... done [1.5 sec].
>
> Initializing JollyDayHoliday for SUTime from classpath:
> edu/stanford/nlp/models/sutime/jollyday/Holidays_sutime.xml as
> sutime.binder.1.
> #<ReflectionLoadingException
> edu.stanford.nlp.util.ReflectionLoading$ReflectionLoadingException: Error
> creating edu.stanford.nlp.time.TimeExpressionExtractorImpl>
>
> Exception in start/start:
> edu.stanford.nlp.util.ReflectionLoading$ReflectionLoadingException: Error
> creating edu.stanford.nlp.time.TimeExpressionExtractorImpl
>
> If I do this in the Java app:
>
> mvn dependency:tree
>
> I see this:
>
> [INFO] |  +- joda-time:joda-time:jar:2.1:compile
> [INFO] |  \- javax.xml.bind:jaxb-api:jar:2.2.7:compile
> [INFO] +- log4j:log4j:jar:1.2.17:compile
> [INFO] +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
> [INFO] |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
> [INFO] +- junit:junit:jar:3.8.1:test
> [INFO] +- net.sf.supercsv:super-csv:jar:2.0.0-beta-1:compile
> [INFO] +- org.apache.commons:commons-lang3:jar:3.0:compile
> [INFO] \- edu.stanford.nlp:stanford-corenlp:jar:3.5.2:compile
> [INFO]    +- com.io7m.xom:xom:jar:1.2.10:compile
> [INFO]    |  +- xml-apis:xml-apis:jar:1.3.03:compile
> [INFO]    |  +- xerces:xercesImpl:jar:2.8.0:compile
> [INFO]    |  \- xalan:xalan:jar:2.7.0:compile
> [INFO]    +-
> com.googlecode.efficient-java-matrix-library:ejml:jar:0.23:compile
> [INFO]    \- javax.json:javax.json-api:jar:1.0:compile
>
> If I do this in the Clojure app:
>
> lein deps :tree
>
> I see this:
>
> Retrieving org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.pom from central
> Retrieving
> clojure-complete/clojure-complete/0.2.3/clojure-complete-0.2.3.pom from
> clojars
> Retrieving org/clojure/tools.nrepl/0.2.6/tools.nrepl-0.2.6.jar from central
> Retrieving
> clojure-complete/clojure-complete/0.2.3/clojure-complete-0.2.3.jar from
> clojars
> Possibly confusing dependencies found:
> [slingshot "0.10.3"]
>  overrides
> [clj-http "1.1.2"] -> [slingshot "0.12.2" :exclusions [org.clojure/clojure]]
>
> Consider using these exclusions:
> [clj-http "1.1.2" :exclusions [slingshot]]
>
> [clj-time "0.6.0"]
>  overrides
> [ring "1.4.0-RC1"] -> [ring/ring-jetty-adapter "1.4.0-RC1"] ->
> [ring/ring-core "1.4.0-RC1"] -> [clj-time "0.9.0"]
>  and
> [ring "1.4.0-RC1"] -> [ring/ring-devel "1.4.0-RC1"] -> [ring/ring-core
> "1.4.0-RC1"] -> [clj-time "0.9.0"]
>  and
> [ring "1.4.0-RC1"] -> [ring/ring-core "1.4.0-RC1"] -> [clj-time "0.9.0"]
>
> Consider using these exclusions:
> [ring "1.4.0-RC1" :exclusions [clj-time]]
> [ring "1.4.0-RC1" :exclusions [clj-time]]
> [ring "1.4.0-RC1" :exclusions [clj-time]]
>
> [org.clojure/tools.namespace "0.2.4"]
>  overrides
> [ring "1.4.0-RC1"] -> [ring/ring-devel "1.4.0-RC1"] -> [ns-tracker "0.3.0"]
> -> [org.clojure/tools.namespace "0.2.10"]
>
> Consider using these exclusions:
> [ring "1.4.0-RC1" :exclusions [org.clojure/tools.namespace]]
>
> [clj-stacktrace "0.2.7"]
>  overrides
> [ring "1.4.0-RC1"] -> [ring/ring-devel "1.4.0-RC1"] -> [clj-stacktrace
> "0.2.8"]
>
> Consider using these exclusions:
> [ring "1.4.0-RC1" :exclusions [clj-stacktrace]]
>
> [clj-time "0.6.0"] -> [joda-time "2.2"]
>  overrides
> [ring "1.4.0-RC1"] -> [ring/ring-jetty-adapter "1.4.0-RC1"] ->
> [ring/ring-core "1.4.0-RC1"] -> [clj-time "0.9.0"] -> [joda-time "2.6"]
>  and
> [ring "1.4.0-RC1"] -> [ring/ring-devel "1.4.0-RC1"] -> [ring/ring-core
> "1.4.0-RC1"] -> [clj-time "0.9.0"] -> [joda-time "2.6"]
>  and
> [ring "1.4.0-RC1"] -> [ring/ring-core "1.4.0-RC1"] -> [clj-time "0.9.0"] ->
> [joda-time "2.6"]
>
> Consider using these exclusions:
> [ring "1.4.0-RC1" :exclusions [joda-time]]
> [ring "1.4.0-RC1" :exclusions [joda-time]]
> [ring "1.4.0-RC1" :exclusions [joda-time]]
>
>  [cheshire "5.5.0"]
>    [com.fasterxml.jackson.core/jackson-core "2.5.3"]
>    [com.fasterxml.jackson.dataformat/jackson-dataformat-cbor "2.5.3"]
>    [com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.5.3"]
>    [tigris "0.1.1"]
>  [clj-http "1.1.2"]
>    [com.cognitect/transit-clj "0.8.271" :exclusions [[org.clojure/clojure]]]
>      [com.cognitect/transit-java "0.8.287"]
>        [com.fasterxml.jackson.datatype/jackson-datatype-json-org "2.3.2"]
>          [com.fasterxml.jackson.core/jackson-databind "2.3.2"]
>            [com.fasterxml.jackson.core/jackson-annotations "2.3.0"]
>          [org.json/json "20090211"]
>        [org.apache.directory.studio/org.apache.commons.codec "1.8"]
>        [org.msgpack/msgpack "0.6.10"]
>          [com.googlecode.json-simple/json-simple "1.1.1" :exclusions
> [[junit]]]
>          [org.javassist/javassist "3.18.1-GA"]
>    [commons-codec "1.10" :exclusions [[org.clojure/clojure]]]
>    [commons-io "2.4" :exclusions [[org.clojure/clojure]]]
>    [crouton "0.1.2" :exclusions [[org.clojure/clojure]]]
>      [org.jsoup/jsoup "1.7.1"]
>    [org.apache.httpcomponents/httpclient "4.4.1" :exclusions
> [[org.clojure/clojure]]]
>      [commons-logging "1.2"]
>    [org.apache.httpcomponents/httpcore "4.4.1" :exclusions
> [[org.clojure/clojure]]]
>    [org.apache.httpcomponents/httpmime "4.4.1" :exclusions
> [[org.clojure/clojure]]]
>    [org.clojure/tools.reader "0.9.2" :exclusions [[org.clojure/clojure]]]
>    [potemkin "0.3.13" :exclusions [[org.clojure/clojure]]]
>      [clj-tuple "0.2.1"]
>  [clj-stacktrace "0.2.7"]
>  [clj-time "0.6.0"]
>    [joda-time "2.2"]
>  [clojure-complete "0.2.3" :scope "test" :exclusions
> [[org.clojure/clojure]]]
>  [com.novemberain/monger "2.0.1"]
>    [clojurewerkz/support "1.1.0"]
>      [com.google.guava/guava "18.0"]
>    [org.mongodb/mongo-java-driver "2.12.4"]
>  [com.taoensso/timbre "3.2.1"]
>    [com.taoensso/encore "1.5.1"]
>    [io.aviso/pretty "0.1.10"]
>  [compojure "1.3.4"]
>    [clout "2.1.2"]
>      [instaparse "1.4.0" :exclusions [[org.clojure/clojure]]]
>    [medley "0.6.0"]
>    [org.clojure/tools.macro "0.1.5"]
>    [ring/ring-codec "1.0.0"]
>  [dire "0.5.1"]
>    [robert/hooke "1.3.0"]
>  [local/nlp "1.0-SNAPSHOT"]
>  [manifold "0.1.0"]
>    [org.clojure/tools.logging "0.3.1"]
>    [riddley "0.1.9"]
>  [me.raynes/fs "1.4.4"]
>    [org.apache.commons/commons-compress "1.4"]
>      [org.tukaani/xz "1.0"]
>  [org.clojure/clojure "1.6.0"]
>  [org.clojure/core.cache "0.6.4"]
>    [org.clojure/data.priority-map "0.0.4"]
>  [org.clojure/core.incubator "0.1.3"]
>  [org.clojure/core.match "0.3.0-alpha4"]
>    [org.clojure/tools.analyzer.jvm "0.6.5"]
>      [org.clojure/core.memoize "0.5.6"]
>      [org.clojure/tools.analyzer "0.6.4"]
>      [org.ow2.asm/asm-all "4.2"]
>  [org.clojure/data.json "0.2.5"]
>  [org.clojure/tools.namespace "0.2.4"]
>  [org.clojure/tools.nrepl "0.2.6" :scope "test" :exclusions
> [[org.clojure/clojure]]]
>  [overtone/at-at "1.2.0"]
>  [ring/ring-json "0.3.1"]
>  [ring "1.4.0-RC1"]
>    [ring/ring-core "1.4.0-RC1"]
>      [commons-fileupload "1.3.1"]
>      [crypto-equality "1.0.0"]
>      [crypto-random "1.2.0"]
>    [ring/ring-devel "1.4.0-RC1"]
>      [hiccup "1.0.5"]
>      [ns-tracker "0.3.0"]
>        [org.clojure/java.classpath "0.2.2"]
>    [ring/ring-jetty-adapter "1.4.0-RC1"]
>      [org.eclipse.jetty/jetty-server "9.2.10.v20150310"]
>        [javax.servlet/javax.servlet-api "3.1.0"]
>        [org.eclipse.jetty/jetty-http "9.2.10.v20150310"]
>          [org.eclipse.jetty/jetty-util "9.2.10.v20150310"]
>        [org.eclipse.jetty/jetty-io "9.2.10.v20150310"]
>    [ring/ring-servlet "1.4.0-RC1"]
>  [slingshot "0.10.3"]
>
>
>    [robert/hooke "1.3.0"]
>  [local/nlp "1.0-SNAPSHOT"]
>  [manifold "0.1.0"]
>    [org.clojure/tools.logging "0.3.1"]
>    [riddley "0.1.9"]
>  [me.raynes/fs "1.4.4"]
>    [org.apache.commons/commons-compress "1.4"]
>      [org.tukaani/xz "1.0"]
>  [org.clojure/clojure "1.6.0"]
>  [org.clojure/core.cache "0.6.4"]
>    [org.clojure/data.priority-map "0.0.4"]
>  [org.clojure/core.incubator "0.1.3"]
>  [org.clojure/core.match "0.3.0-alpha4"]
>    [org.clojure/tools.analyzer.jvm "0.6.5"]
>      [org.clojure/core.memoize "0.5.6"]
>      [org.clojure/tools.analyzer "0.6.4"]
>      [org.ow2.asm/asm-all "4.2"]
>  [org.clojure/data.json "0.2.5"]
>  [org.clojure/tools.namespace "0.2.4"]
>  [org.clojure/tools.nrepl "0.2.6" :scope "test" :exclusions
> [[org.clojure/clojure]]]
>  [overtone/at-at "1.2.0"]
>  [ring/ring-json "0.3.1"]
>  [ring "1.4.0-RC1"]
>    [ring/ring-core "1.4.0-RC1"]
>      [commons-fileupload "1.3.1"]
>      [crypto-equality "1.0.0"]
>      [crypto-random "1.2.0"]
>    [ring/ring-devel "1.4.0-RC1"]
>      [hiccup "1.0.5"]
>      [ns-tracker "0.3.0"]
>        [org.clojure/java.classpath "0.2.2"]
>    [ring/ring-jetty-adapter "1.4.0-RC1"]
>      [org.eclipse.jetty/jetty-server "9.2.10.v20150310"]
>        [javax.servlet/javax.servlet-api "3.1.0"]
>        [org.eclipse.jetty/jetty-http "9.2.10.v20150310"]
>          [org.eclipse.jetty/jetty-util "9.2.10.v20150310"]
>        [org.eclipse.jetty/jetty-io "9.2.10.v20150310"]
>    [ring/ring-servlet "1.4.0-RC1"]
>  [slingshot "0.10.3"]
>
> How would I resolve a potential version conflict?
>
> This is the project.clj file that I have:
>
> (defproject oyster "0.1"
>   :dependencies [[org.clojure/clojure "1.6.0"]
>                  [com.taoensso/timbre "3.2.1"]
>                  [dire "0.5.1"]
>                  [slingshot "0.10.3"]
>                  [ring "1.4.0-RC1"]
>                  [clj-time "0.6.0"]
>                  [org.clojure/data.json "0.2.5"]
>                  [compojure "1.3.4"]
>                  [com.novemberain/monger "2.0.1"]
>                  [org.clojure/tools.namespace "0.2.4"]
>                  [manifold "0.1.0"]
>                  [me.raynes/fs "1.4.4"]
>                  [org.clojure/core.incubator "0.1.3"]
>                  [clj-stacktrace "0.2.7"]
>                  [overtone/at-at "1.2.0"]
>                  [ring/ring-json "0.3.1"]
>                  [clj-http "1.1.2"]
>                  [org.clojure/core.cache "0.6.4"]
>                  [cheshire "5.5.0"]
>                  [org.clojure/core.match "0.3.0-alpha4"]
>                  [local/nlp "1.0-SNAPSHOT"]]
>   :repositories {"local" ~(str (.toURI (java.io.File. "maven_repository")))}
>   :disable-implicit-clean true
> ;;  :warn-on-reflection true
>   :source-paths      ["src/clojure"]
>   :java-source-paths ["src/java"]
>   :main oyster.core
>   :aot :all
>   :jvm-opts ["-Xms100m" "-Xmx1000m" "-XX:-UseCompressedOops"])
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with your
> first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to