boot-from-lein defines a Boot task for configuring Boot via an existing
project.clj file used in a Leiningen project.
The rationale is that you’ll often find yourself working in a Leiningen project but want to make use of Boot’s build pipeline because of things like the ability to run tasks like refresh when changing a file.
If you’re starting a new project where Boot makes sense you won’t need Leiningen and hence won’t need boot-from-lein.
I’ve yet to cut a release of this library because I’m not certain the approach is optimal. See the list of TODO items below.
Adding boot.core/task-options! inside the from-lein task results in an
exception.
java.lang.RuntimeException: Unable to resolve var: repl in this context clojure.lang.ExceptionInfo: Unable to resolve var: repl in this context
Without task-options! we can’t augment tasks like repl, aot, jar, and
pom as per the example task in the boot wiki. Based on my use case this isn’t
an issue as I’d use Leiningen to build a JAR etc. but for other users these
tasks may be useful?
The question is do we add support for configuring existing Boot tasks from the
Leiningen project.clj?
The from-lein task is somewhat opinionated about what configuration should be
copied from Leiningen to Boot, and this may cause problems if people add a
build.boot file with settings they want to prefer.
We use boot.core/merge-env! but maybe we should parse the Leiningen project
and return a map of what’s found so others can pick and choose what to
merge/set/etc. I’m not sure it’s possible to emit some map of information for
downstream consumers to utilise.