Here's a repo illustrating the problem I've been having: https://github.com/ezmiller/datomic-ring-dep-conflict
@ezmiller77 You might want to update the README to explain what the problem actually is and what you've tried so far to resolve it...
@seancorfield: https://github.com/ezmiller/datomic-ring-dep-conflict/tree/exlusions-from-datomic-cloud
Looks like a dependency issue, @ezmiller77. Perhaps try checking lein deps :tree
for conflicts.
@weavejester got solved overnight. The trick was to specify a jetty-server version. Hopefully, the datomic folks will add it to there docs. Seems others wasted a bunch of time trying to figure this one out as well.
Glad you got it sorted
https://forum.datomic.com/t/dependency-conflict-with-ring-jetty/447
To be honest @ezmiller77 this sort of thing -- version conflicts in transitive dependencies -- is fairly common, so adding exclusions and then also adding specific versions of the excluded libraries is just something we have to get used to with Maven dependency resolution 😐 We have several dependencies at work on external Java libraries and we have to have a fairly long list of exclusions and a long list of top-level dependencies for stuff that our code "needs" transitively even tho' none of those libraries are explicitly used by our code.
We rely on Microsoft Azure authentication for a couple of apps and their libraries bring in all sorts of transitive dependencies that conflict with several other libraries we use. Every time we want to update the Azure library, we have to go through a big dependency dance to ensure we have the right exclusions and the right set of top-level dependencies 😞
Yeah. I saw somewhere else that this has something to do with how Java and thus clojure deals with dependencies. It's a pretty big weakness. I haven't been that frustrated in solving a problem in years. Ironically, I was longing to get back to the ease of the Javascript dev environment, and if that's the case you know something's off 😉
To be honest, I think Java/JVM has one of the best tools for dependency resolution. It's still broken, but others are so much worse.