Skip to content

invetica/boot-from-lein

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Boot from Lein(ingen)

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.

Contents

Installation

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.

Roadmap

task-options!

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?

Let the user decide

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.

About

Use Boot in an existing Leiningen project

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published