Since I've been fielding Qs today about using aliases as data and abstracting builds in a monorepo, I figured it would be useful to highlight Polylith's build.clj script -- which is modeled on some of what we do at World Singles Networks: https://github.com/polyfy/polylith/blob/master/build.clj
For folks using my build-clj but not needing the deploy-to-Clojars functionality and not wanting to bring in slipset/deps-deploy and "all" of its transitive dependencies:
:build {:deps {io.github.seancorfield/build-clj
{:git/tag "v0.6.0" :git/sha "2451bea"
;; omits deps-deploy dependency:
:deps/root "slim"}}
:ns-default build}@seancorfield I was thinking, you can also requiring-resolve deps-deploy. That is what neil generates when you choose clj -Tneil add-build :deps-deploy true. It will lazily load deps deploy since it saves on startup time when you're not using it.
ah, you're already doing that, I've been meaning to suggest that :)
In the very early versions of build-clj, in-house, before it became an actual project, it was doing the dynamic require, but then I turned it into a static require for that initial version so folks wouldn't trip over trying to deploy or install without adding the deps-deploy dependency to their :build alias themselves.
But deps-deploy originally didn't have many dependencies so I didn't worry much about it -- just pomegranate. Now it has a shed load of Maven and S3 stuff so I've been toying with the idea of making it an optional dep for a while.
(and install switched to tools.build.api/install some time ago)