Fork me on GitHub

What's the canonical boot way to include dependencies that are local (e.g., in another directory, or a specific jar file on the harddrive that isn't in maven or clojars (e.g., a proprietary db driver), another project being worked on currently but not yet published anywhere, etc?


I love clj deps allowing me to solve this problem but miss the full power of boot and/or lein for creating production artifacts or orchestrating more complex build, deploy and test tasks. Lein has the idea of 'checkouts' but require obviously that the softlink to the actual location of the project also be a lein-based project.


I kinda just want to stop cycling between the smorgasbord of options and find a consistent workflow I can repeatably use to scale up from a simple PoC to a complex system. I am so tired of Clojure (not to say JVM) tooling getting in the way of Clojure productivity.


@bobcalco You can put this in your build.boot:

(boot.pod/add-classpath "path/to/file.jar")


Sure - the idea is that as the project matures, you start hardening on good devops standard practices. But I find it hard "starting" projects such that the steps to devops nirvana are incremental and more to the point can be done consistently and reliably once your idea of how the project should be structured emerges from the initial primordial soup in your head.


Also, some drivers are third-party proprietary and I can't redistribute them in any way. At distribution time for my app's functionality, I have to rely on their being included in the classpath by other means.


BTW, I intended these two replies to be to your admonition that this wasn't the "recommended" way of doing things.


That's fine. I also never fully understand the stance of Lein/Boot against depending on local artifacts.


It's driven me mad in some cases. But now clj deps goes in the other extreme - not really supporting production building. I mean, unless I'm missing something (which is possible - I'm just going from the guide page at And then there's tooling issues like IntelliJ and Cider preferring lein etc.


It is not a "recommended" way of doing things (hurts build reproducibility, blah-blah-blah), but this hack worked for when I needed that.