What does HackerNews think of pomegranate?

A sane Clojure API for Maven Artifact Resolver + dynamic runtime modification of the classpath

Language: Clojure

> 3

https://github.com/clj-commons/pomegranate https://stackoverflow.com/questions/16409182/any-way-to-add-...

=> (use '[cemerick.pomegranate :only (add-dependencies)]) nil => (add-dependencies :coordinates '[[incanter "1.2.3"]])

> I use add-lib branch of tools.deps.alpha that allows me to add dependencies dynamically at the REPL and then start using them immediately, just like in the shell.

You could do this with (battle-tested) pomegranate [1] ages ago, which is used by leiningen as the default resolver.

[1] https://github.com/clj-commons/pomegranate

The only time I need to restart is when I load new libraries but you can use https://github.com/clj-commons/pomegranate
Here is a question that I have about Clojure and its REPL. I have tried 3 times over a period of a year or so to get it to behave like a common lisp REPL and every single time I have hit a brick wall called project.clj and/or deps.edn (which open a terrifying black hole to maven). My simplest use case is to be able to call `(expt 2 10)` from a bare clojure install without leaving the repl. As far as I can tell it is impossible to achieve this. I finally gave up and wrote a gentoo ebuild to install the numeric tower just to see if it was possible [0]. What I learned was that I have no idea how clojure libraries interact with the JVM. `pomegranate` gets the closest but I'm still fairly certain that you can't install that from a repl without resorting to hackery [1]. I think I understand the tradeoff toward using project.clj and deps.edn to create sane and static environments for a project, but the friction is larger than nearly any other language that I have tried because you are practically forced to create a project structure in order to do anything.

0. https://github.com/tgbugs/tgbugs-overlay/blob/master/dev-jav... 1. https://github.com/clj-commons/pomegranate