Fork me on GitHub
#cider
<
2019-07-14
>
Joshua Suskalo21:07:08

I'm currently having issues with my http-kit based library. It works fine in lein's repl, but when I start it with CIDER I get an exception about the Client/Server mode not being set. This is something I've seen from people using http-kit 2.3.0 when they're using Java 11 or later. I'm currently using Java 12, so this is somewhat expected if my http-kit version is 2.3.0 or older. However, my library requires 2.4.0-alpha3, which has support for Java 11+. Is there a way for me to see what version of http-kit is included when I launch via the CIDER repl? Or does anyone know if nREPL or something requires an older version of http-kit?

jumar03:07:44

@U5NCUG8NR I'd try cider-open-classpath-entry. Usually the artifacts should have a version number in their name.

Joshua Suskalo03:07:13

Thanks! I'll have to take a look at that next time I have a free minute.

bozhidar07:07:27

Lein’s repl and CIDER’s repl are the same thing (provided you’re using lein and cider-jack-in - cider just runs lein repl and connects to the resulting nREPL server. nREPL doesn’t use http-kit in any form (although drawbridge might be using). I’m not sure if Leiningen still bundles drawbridge).

Joshua Suskalo22:07:07

CIDER's repl injects several dependencies, like nREPL itself though, doesn't it? At least it appears to based on the command I see run in my message history. I was wondering if one of the injected dependencies required an older version of http-kit.

Joshua Suskalo22:07:28

But yeah, I'll try to check that out and see what I can find.

Joshua Suskalo22:07:37

After using cider-open-classpath-entry I see http-kit 2.3.0 is being loaded instad of 2.4.0-alpha3

Joshua Suskalo22:07:56

I'm not sure how to determine what is requiring it, and if I don't know that I don't know how to put an exclusion in my project.

Joshua Suskalo00:07:22

Ah, so it turns out I can set a global exclusion in lein, and that was the final resolution to my problem.

jumar07:07:19

yes, you can always use lein deps :tree to figure out where the dependency comes from. or lein deps :why http-kit