Boot is a
build automation and dependency management tool written primarily in the
Clojure
Clojure (, like ''closure'') is a dynamic and functional dialect of the Lisp programming language on the Java platform. Like other Lisp dialects, Clojure treats code as data and has a Lisp macro system. The current development process is comm ...
programming language.
Boot was originally written by Micha Niskin and Alan Dipert as part of the Hoplon web framework. As of May 2015, Boot is developed and released independently of Hoplon. Boot is implemented as an executable
entry point
In computer programming, an entry point is the place in a program where the execution of a program begins, and where the program has access to command line arguments.
To start a program's execution, the loader or operating system passes contro ...
and a set of Clojure libraries that can be used to develop build processes programmatically. The spirit of Boot's design is captured by its tag line, "Builds are programs. Let's start treating them that way."
Build tasks supported natively by Boot include compiling
Java
Java (; id, Jawa, ; jv, ꦗꦮ; su, ) is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea to the north. With a population of 151.6 million people, Java is the world's List ...
, creating .jar files, and creating
servlets
A Jakarta Servlet (formerly Java Servlet) is a Java software component that extends the capabilities of a server. Although servlets can respond to many types of requests, they most commonly implement web containers for hosting web application ...
. As a Clojure program, Boot can be extended on a per-project basis using the Clojure language. Boot's primary means of extension are ''tasks'', or functions that take and return Filesets. A Fileset is a managed, immutable representation of the filesystem and
classpath that can be synchronized to disk at any point during the build. Like
Leiningen, Boot supports resolving and publishing
Maven
MAVEN is an American spacecraft orbiting Mars to study the loss of its atmospheric gases to space, providing insight into the history of
the planet's climate and water. The spacecraft name is an acronym for "Mars Atmosphere and Volatile Evolu ...
dependencies using the Aether library.
Boot also supports:
* In-process
classloader The Java Class Loader is a part of the Java Runtime Environment that dynamically loads Java classes into the Java Virtual Machine. Usually classes are only loaded on demand. The Java run time system does not need to know about files and file syste ...
isolation with pods
* Shebang scripts
Boot is featured in Appendix B of the book "Clojure for the Brave and True".
[
]
References
External links
*
*
List of community-contributed tasksClojure website
Build automation
Software using the Eclipse license
{{free-software-stub