So I’m developing two projects simultaneously, a situation in which I’d normally use lein’s checkouts feature. Instead I’m trying to use clj
and deps.edn
.
Here’s my setup (simplified for troubleshooting purposes):
One project has this as its deps.edn
:
{:deps {eastwood {:local/root "/Users/alistair/clj/eastwood"}}}
My copy of Eastwood (at the above path) has this as its deps.edn
:
{:paths ["src" "resource"] :deps {SNIP}}
When I run clj -Spath
inside the Eastwood directory, I can see “resource” is on the classpath. Eastwood doesn’t work without its resource directory on the classpath, because of lines like this in its source.
When I run clj
inside the first project (the one with the :local/root
dependency), the “eastwood/src” directory is on the classpath, but not “resource”, and so when I call eastwood it errors out.
Am I doing something wrong as a consumer, or is at actually a bad idea for eastwood to put critical parts of its functionality in a directory other than src
?
Right now the workaround I have in mind is to just move those necessary .edn files into the src folder in my working copy of Eastwood so that they’re available to the dependent project. I could also just manually add the resource folder to the :paths
in the dependent project’s deps.edn
.
EDIT: it looks like I’ve just stumbled upon this pre-existing bug. When I add “resource” to the paths of the dependent project, it picks up the resources directory from eastwood.