Author: Phil Hagelberg and contributors
Description: Leiningen: automating Clojure projects

# Leiningen

for automating Clojure projects without setting your hair on fire

Leiningen is the easiest way to use Clojure. With a focus on project automation and declarative configuration, it gets out of your way and lets you focus on your code.

    (defproject leiningen.org "1.0.0"
      :description "Generate static HTML for https://leiningen.org"
      :dependencies [[enlive "1.0.1"]
                     [cheshire "4.0.0"]
                     [org.markdownj/markdownj "0.3.0-1.0.2b4"]]
      :main leiningen.web)

### Install

First check your package manager to see whether it includes Leiningen. If not, don't worry; a manual install is easy.

Leiningen and Clojure require Java; ideally OpenJDK. Get this from your package manager, or download manually if you have to.

1. Download the `lein` script (or on Windows `lein.bat` if you don't use WSL)
2. Place it on your `$PATH` where your shell can find it (eg. `/usr/local/bin/`)
3. Set it to be executable (`sudo chmod a+x /usr/local/bin/lein`)
4. Run it (`lein`) and it will download the self-install package

### Documentation

The tutorial is the best place to start. If you have Leiningen installed, you can read the tutorial by running `lein help tutorial`. It does not cover learning the language itself; good Clojure documentation can be found elsewhere.

Running `lein help faq` will get you the FAQ. Documentation for each individual task is available via `lein help $TASK`. You can also see the sample `project.clj` file containing a reference of most project settings by running `lein help sample`.

More: profiles | deploying libraries | writing plugins | plugin list

### Community

At the time of this writing Leiningen is the most widely-contributed-to Clojure project. We welcome potential contributors and do our best to make it easy to help out.

Discussion occurs primarily in the `#leiningen` channel on Libera.Chat.

Issues should be reported on the issue tracker.

The canonical repository is on Codeberg but a mirror will be left up on Github for a while for people who have not yet created a Codeberg account.