Liking cljdoc? Tell your friends :D

Required Tooling

Development at Wall Brew currently spans two primary programming languages: clojure and javascript. To build libraries and applications in those languages we use the two following build tools:

We highly recommend using your operating system's preferred package manager to install the following dependencies. If you do not have a preferred package manager, we currently recommend Homebrew.

For developers working on Windows machines, we strongly recommend the Windows Subsystem for Linux (WSL).

Clojure Development

The Java Development Kit

Since clojure is a hosted language within the JVM, a recent JDK is required. We recommend and develop against OpenJDK distributions. The following Homebrew command will install the most recent distribution:

brew install openjdk

You can verify the installation with the following command:

$ java --version
openjdk 21.0.2 2024-01-16
OpenJDK Runtime Environment Homebrew (build 21.0.2)
OpenJDK 64-Bit Server VM Homebrew (build 21.0.2, mixed mode, sharing)

If you plan on developing against or regression testing functionality against older JDK versions, we recommend installing jenv. jenv can be installed with the following homebrew command:

brew install jenv

You can verify the installation with the following command:

$ jenv versions
* system (set by /some/local/path/.jenv/version)

Leiningen

Leiningen manages clojure dependencies and tooling, and can be installed with the following homebrew command:

brew install leiningen

You can verify the installation with the following command:

$ lein -v
Leiningen 2.11.2 on Java 21.0.2 OpenJDK 64-Bit Server VM

When working in a clojure repository, Leiningen will use a file named project.clj in the repository's root to declare library dependencies and tooling plugins. Leiningen will automatically download these as-needed while using default commands; however, they can be pre-fetched with the following:

lein deps

Individual developer tools should be installed in .lein/profiles.clj A sample profile is provided below, but can be customized to your needs:

{:user {:plugin-repositories [["clojars" {:url "https://clojars.org/repo"}]]
        :git-dependencies    [["https://github.com/tobyhede/monger.git"]]
        :plugins             [[com.jakemccrary/lein-test-refresh "0.23.0"]
                              [lein-cloverage "1.2.4"]
                              [com.github.liquidz/antq "RELEASE"]
                              [ns-sort "1.0.3"]]
        :test-refresh        {:notify-command ["terminal-notifier" "-title" "Tests" "-message"]}}}

Default developer tools will be installed in the project.clj file for each Wall Brew repository.

Clojurescript and Javascript Development

Node.js

The Node Package Manager manages dependencies and tooling for our javascript projects and our clojurescript testing dependencies. It can be installed with the following homebrew command:

brew install node

You can verify the installation with the following command:

$ npm version
{
  npm: '10.2.4',
  node: '21.6.2',
  ...
}

Can you improve this documentation?Edit on GitHub

cljdoc is a website building & hosting documentation for Clojure/Script libraries

× close