It sounds like you need to use lein-checkouts
. Here is a detailed description. See also the documentation.
Basically, you make a directory named checkouts
at the top level of your project directory (next to project.clj
). Inside of checkouts
, make symbolic links to the local top-level dirs for all dependency projects.
For example, I have a project car
that depends on 2 other projects, engine
and wheel
. I structure the project like so:
> d car/checkouts/*
lrwxrwxrwx 1 alan alan 17 Jun 6 21:40 car/checkouts/engine -> /home/alan/engine
lrwxrwxrwx 1 alan alan 17 Jun 6 21:40 car/checkouts/wheel -> /home/alan/wheel
Update 1: Symbolic links (aka symlinks) are created in linux using the ln -s
command:
> cd car
> ln -s /home/alan/wheel
> ls -ldF wheel
lrwxrwxrwx 1 alan alan 17 Jun 6 21:40 wheel -> /home/alan/wheel
Now, project car
will see any local edits to files for both engine
and wheel
projects (as well as its own source files, of course).
Update 2
For jar file dependencies, you need to use :resource-paths in your project.clj
file. Please see this question. and this example.