HOME

TheInfoList



OR:

Boot is a
build automation Build automation is the practice of building software systems in a relatively unattended fashion. The build is configured to run with minimized or no software developer interaction and without using a developer's personal computer. Build automati ...
and dependency management tool written primarily in the
Clojure Clojure (, like ''closure'') is a dynamic programming language, dynamic and functional programming, functional dialect (computing), dialect of the programming language Lisp (programming language), Lisp on the Java (software platform), Java platfo ...
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 co ...
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 is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
, creating .jar files, and creating servlets. 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 Classpath is a parameter in the Java Virtual Machine or the Java compiler that specifies the location of user-defined classes and packages. The parameter may be set either on the command-line, or through an environment variable. Overview and ...
that can be synchronized to disk at any point during the build. Like Leiningen, Boot supports resolving and publishing
Maven MAVEN is a NASA spacecraft orbiting Mars to study the loss of that planet's atmospheric gases to space, providing insight into the history of the planet's climate and water. The name is an acronym for "Mars Atmosphere and Volatile Evolution" w ...
dependencies using the Aether library. Boot also supports: * In-process
classloader The Java class loader, part of the Java Runtime Environment, dynamically loads Java classes into the Java Virtual Machine. Usually classes are only loaded on demand. The virtual machine will only load the class files required for executing the prog ...
isolation with pods * Shebang scripts Boot is featured in Appendix B of the book "Clojure for the Brave and True".


References


External links

* Build automation Software using the Eclipse Public License {{free-software-stub