Closed byw closed 10 years ago
Hi Bobby, it sounds like you may have a dependency conflict.
Could you show me the output of your lein deps :tree
? For Sente v1.1.0 you'll need to see that [com.taoensso/encore "1.8.1"]
is being pulled in correctly.
I might also try lein clean; lein cljsbuild clean;
first just in case any build artefacts have become inconsistent somehow.
Cheers! :-)
Ah, you're right! I was using an older version of timbre that overrode encore version. Bumped to the latest and it's working fine now.
Thanks very much! :)
Hi Peter,
I'm still having this trouble. Here's my output.
portal $ lein clean; lein cljsbuild clean; lein deps :tree
Deleting files generated by lein-cljsbuild.
Possibly confusing dependencies found:
[cider/cider-nrepl "0.7.0"] -> [org.clojure/java.classpath "0.2.0" :exclusions [org.clojure/clojure]]
overrides
[ring/ring-devel "1.3.1"] -> [ns-tracker "0.2.2"] -> [org.clojure/java.classpath "0.2.2"]
Consider using these exclusions:
[ring/ring-devel "1.3.1" :exclusions [org.clojure/java.classpath]]
[org.clojure/clojurescript "0.0-2322"] -> [org.clojure/tools.reader "0.8.4"]
overrides
[com.taoensso/sente "1.1.0"] -> [com.taoensso/timbre "3.3.1"] -> [com.taoensso/encore "1.8.1"] -> [org.clojure/tools.reader "0.8.8"]
and
[com.taoensso/sente "1.1.0"] -> [com.taoensso/encore "1.8.1"] -> [org.clojure/tools.reader "0.8.8"]
and
[com.taoensso/sente "1.1.0"] -> [org.clojure/tools.reader "0.8.8"]
and
[clj-http "1.0.0"] -> [org.clojure/tools.reader "0.8.5" :exclusions [org.clojure/clojure]]
Consider using these exclusions:
[com.taoensso/sente "1.1.0" :exclusions [org.clojure/tools.reader]]
[com.taoensso/sente "1.1.0" :exclusions [org.clojure/tools.reader]]
[com.taoensso/sente "1.1.0" :exclusions [org.clojure/tools.reader]]
[clj-http "1.0.0" :exclusions [org.clojure/tools.reader]]
[cheshire "5.3.1"] -> [com.fasterxml.jackson.core/jackson-core "2.3.1"]
overrides
[clj-http "1.0.0"] -> [com.cognitect/transit-clj "0.8.247" :exclusions [org.clojure/clojure]] -> [com.cognitect/transit-java "0.8.257"] -> [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-core "2.3.2"]
and
[clj-http "1.0.0"] -> [com.cognitect/transit-clj "0.8.247" :exclusions [org.clojure/clojure]] -> [com.cognitect/transit-java "0.8.257"] -> [com.fasterxml.jackson.datatype/jackson-datatype-json-org "2.3.2"] -> [com.fasterxml.jackson.core/jackson-core "2.3.2"]
Consider using these exclusions:
[clj-http "1.0.0" :exclusions [com.fasterxml.jackson.core/jackson-core]]
[clj-http "1.0.0" :exclusions [com.fasterxml.jackson.core/jackson-core]]
warn
[cheshire "5.3.1"]
[com.fasterxml.jackson.core/jackson-core "2.3.1"]
[com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.3.1"]
[tigris "0.1.1"]
[cider/cider-nrepl "0.7.0"]
[cljs-tooling "0.1.3" :exclusions [[org.clojure/clojure]]]
[compliment "0.1.3" :exclusions [[org.clojure/clojure]]]
[org.clojure/java.classpath "0.2.0" :exclusions [[org.clojure/clojure]]]
[org.clojure/tools.namespace "0.2.5" :exclusions [[org.clojure/clojure]]]
[org.clojure/tools.trace "0.7.8" :exclusions [[org.clojure/clojure]]]
[org.tcrawley/dynapath "0.2.3" :exclusions [[org.clojure/clojure]]]
[clj-http "1.0.0"]
[com.cognitect/transit-clj "0.8.247" :exclusions [[org.clojure/clojure]]]
[com.cognitect/transit-java "0.8.257"]
[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.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.9" :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.3.5" :exclusions [[org.clojure/clojure]]]
[commons-logging "1.1.3"]
[org.apache.httpcomponents/httpcore "4.3.2" :exclusions [[org.clojure/clojure]]]
[org.apache.httpcomponents/httpmime "4.3.5" :exclusions [[org.clojure/clojure]]]
[potemkin "0.3.8" :exclusions [[org.clojure/clojure]]]
[clj-tuple "0.1.5"]
[riddley "0.1.7"]
[slingshot "0.10.3" :exclusions [[org.clojure/clojure]]]
[clj-stacktrace "0.2.7"]
[clojure-complete "0.2.3" :scope "test" :exclusions [[org.clojure/clojure]]]
[com.taoensso/sente "1.1.0"]
[com.taoensso/encore "1.8.1"]
[com.taoensso/timbre "3.3.1"]
[io.aviso/pretty "0.1.12"]
[compojure "1.1.9"]
[clout "1.2.0"]
[org.clojure/tools.macro "0.1.0"]
[environ "1.0.0"]
[hiccup "1.0.5"]
[http-kit "2.1.19"]
[org.clojure/clojure "1.6.0"]
[org.clojure/clojurescript "0.0-2322"]
[com.google.javascript/closure-compiler "v20140625"]
[args4j "2.0.26"]
[com.google.code.findbugs/jsr305 "1.3.9"]
[com.google.guava/guava "17.0"]
[com.google.javascript/closure-compiler-externs "v20140625"]
[com.google.protobuf/protobuf-java "2.5.0"]
[org.json/json "20090211"]
[org.clojure/data.json "0.2.3"]
[org.clojure/google-closure-library "0.0-20140718-946a7d39"]
[org.clojure/google-closure-library-third-party "0.0-20140718-946a7d39"]
[org.clojure/tools.reader "0.8.4"]
[org.mozilla/rhino "1.7R4"]
[org.clojure/core.async "0.1.338.0-5c5012-alpha"]
[org.clojure/tools.analyzer.jvm "0.1.0-beta12"]
[org.clojure/core.memoize "0.5.6"]
[org.clojure/core.cache "0.6.3"]
[org.clojure/data.priority-map "0.0.2"]
[org.clojure/tools.analyzer "0.1.0-beta12"]
[org.ow2.asm/asm-all "4.1"]
[org.clojure/tools.nrepl "0.2.6" :scope "test" :exclusions [[org.clojure/clojure]]]
[prone "0.6.0"]
[ring/ring-core "1.3.1"]
[clj-time "0.6.0"]
[joda-time "2.2"]
[commons-fileupload "1.3"]
[crypto-equality "1.0.0"]
[crypto-random "1.2.0"]
[ring/ring-codec "1.0.0"]
[ring/ring-devel "1.3.1"]
[ns-tracker "0.2.2"]
[ring/ring-json "0.3.1"]
[slamhound "1.5.5"]
More info:
portal $ lein uberjar
Compiling portal.core
java.lang.RuntimeException: No such var: encore/keys=, compiling:(taoensso/sente.clj:170:5)
Works fine with lein run
and from cider repl.
What is the output of lein with-profile uberjar deps :tree
?
portal $ lein with-profile uberjar deps :tree
Possibly confusing dependencies found:
[org.clojure/clojurescript "0.0-2322"] -> [org.clojure/tools.reader "0.8.4"]
overrides
[com.taoensso/sente "1.1.0"] -> [com.taoensso/timbre "3.3.1"] -> [com.taoensso/encore "1.8.1"] -> [org.clojure/tools.reader "0.8.8"]
and
[com.taoensso/sente "1.1.0"] -> [com.taoensso/encore "1.8.1"] -> [org.clojure/tools.reader "0.8.8"]
and
[com.taoensso/sente "1.1.0"] -> [org.clojure/tools.reader "0.8.8"]
and
[clj-http "1.0.0"] -> [org.clojure/tools.reader "0.8.5" :exclusions [org.clojure/clojure]]
Consider using these exclusions:
[com.taoensso/sente "1.1.0" :exclusions [org.clojure/tools.reader]]
[com.taoensso/sente "1.1.0" :exclusions [org.clojure/tools.reader]]
[com.taoensso/sente "1.1.0" :exclusions [org.clojure/tools.reader]]
[clj-http "1.0.0" :exclusions [org.clojure/tools.reader]]
[cheshire "5.3.1"] -> [com.fasterxml.jackson.core/jackson-core "2.3.1"]
overrides
[clj-http "1.0.0"] -> [com.cognitect/transit-clj "0.8.247" :exclusions [org.clojure/clojure]] -> [com.cognitect/transit-java "0.8.257"] -> [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-core "2.3.2"]
and
[clj-http "1.0.0"] -> [com.cognitect/transit-clj "0.8.247" :exclusions [org.clojure/clojure]] -> [com.cognitect/transit-java "0.8.257"] -> [com.fasterxml.jackson.datatype/jackson-datatype-json-org "2.3.2"] -> [com.fasterxml.jackson.core/jackson-core "2.3.2"]
Consider using these exclusions:
[clj-http "1.0.0" :exclusions [com.fasterxml.jackson.core/jackson-core]]
[clj-http "1.0.0" :exclusions [com.fasterxml.jackson.core/jackson-core]]
warn
[cheshire "5.3.1"]
[com.fasterxml.jackson.core/jackson-core "2.3.1"]
[com.fasterxml.jackson.dataformat/jackson-dataformat-smile "2.3.1"]
[tigris "0.1.1"]
[clj-http "1.0.0"]
[com.cognitect/transit-clj "0.8.247" :exclusions [[org.clojure/clojure]]]
[com.cognitect/transit-java "0.8.257"]
[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.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.9" :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.3.5" :exclusions [[org.clojure/clojure]]]
[commons-logging "1.1.3"]
[org.apache.httpcomponents/httpcore "4.3.2" :exclusions [[org.clojure/clojure]]]
[org.apache.httpcomponents/httpmime "4.3.5" :exclusions [[org.clojure/clojure]]]
[potemkin "0.3.8" :exclusions [[org.clojure/clojure]]]
[clj-tuple "0.1.5"]
[riddley "0.1.7"]
[slingshot "0.10.3" :exclusions [[org.clojure/clojure]]]
[com.taoensso/sente "1.1.0"]
[com.taoensso/encore "1.8.1"]
[com.taoensso/timbre "3.3.1"]
[io.aviso/pretty "0.1.12"]
[compojure "1.1.9"]
[clout "1.2.0"]
[org.clojure/tools.macro "0.1.0"]
[environ "1.0.0"]
[hiccup "1.0.5"]
[http-kit "2.1.19"]
[org.clojure/clojure "1.6.0"]
[org.clojure/clojurescript "0.0-2322"]
[com.google.javascript/closure-compiler "v20140625"]
[args4j "2.0.26"]
[com.google.code.findbugs/jsr305 "1.3.9"]
[com.google.guava/guava "17.0"]
[com.google.javascript/closure-compiler-externs "v20140625"]
[com.google.protobuf/protobuf-java "2.5.0"]
[org.json/json "20090211"]
[org.clojure/data.json "0.2.3"]
[org.clojure/google-closure-library "0.0-20140718-946a7d39"]
[org.clojure/google-closure-library-third-party "0.0-20140718-946a7d39"]
[org.clojure/tools.reader "0.8.4"]
[org.mozilla/rhino "1.7R4"]
[org.clojure/core.async "0.1.338.0-5c5012-alpha"]
[org.clojure/tools.analyzer.jvm "0.1.0-beta12"]
[org.clojure/core.memoize "0.5.6"]
[org.clojure/core.cache "0.6.3"]
[org.clojure/data.priority-map "0.0.2"]
[org.clojure/tools.analyzer "0.1.0-beta12"]
[org.ow2.asm/asm-all "4.1"]
[prone "0.6.0"]
[ring/ring-core "1.3.1"]
[clj-time "0.6.0"]
[joda-time "2.2"]
[commons-fileupload "1.3"]
[crypto-equality "1.0.0"]
[crypto-random "1.2.0"]
[ring/ring-codec "1.0.0"]
[ring/ring-devel "1.3.1"]
[clj-stacktrace "0.2.7"]
[ns-tracker "0.2.2"]
[org.clojure/java.classpath "0.2.2"]
[org.clojure/tools.namespace "0.2.4"]
[ring/ring-json "0.3.1"]
Total shot in the dark, but maybe upgrading ClojureScript to resolve the tools.reader
version errors would work. It doesn't look like tools.reader
is related to the missing keys=
var, but I suppose it could be.
But the fact that it only happens for uberjar makes me think that it is related to your profiles or to AOT compilation.
Hey Eric,
Dom is correct (thanks Dom!) - the only way you could be seeing this error is if you're somehow pulling in a version of com.taoensso/encore
earlier than v1.7.2 (when the keys=
fn was added).
Your lein deps :tree
output seems okay here (seems to be showing encore v1.8.1) but the dependencies that Lein pulls in will vary with the Lein profiles actually being used - and that can vary with the commands you're actually calling.
It'd help if I could see your entire project.clj file, and if you could clarify exactly what command calls are producing the error (for example, you've mentioned that lein run
is fine?).
Otherwise, a simple alternative may be to just include the latest encore
dep in your top-level project, currently: [com.taoensso/encore "1.9.3"]
. Try stick it near the top of your project.clj's :dependencies
list (and before any other com.taoensso deps).
Let me know if that works and we can go from there, cheers! :-)
Ok, I think I got it.
I deleted the target/ directory. Uberjar stuff was not being cleaned up with lein clean
. Works now.
Thanks, Peter and Dom!
Eric
Awesome, thanks for letting me know. Feel free to ping again if you run into any further issues. Cheers! :-)
Hi,
I'm getting an error when requiring sente in a clj namespace declaration:
This happens with both 1.0.0 and 1.1.0, on clojure 1.6.0.
Seeing that no one else is having this issue, it might be something stupid on my part.
Any pointer is appreciated!