Including the resource directory (not just "src") of a :local/root deps.edn dependency


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.


Yes, this is a bug. You’re doing the right thing.