Liking cljdoc? Tell your friends :D

slim

The slim way to build Clojure.

Overview

slim is an intentionally minimal build tool for Clojure projects that emphasizes simplicity and minimal configuration. It helps you build uberjars with zero ceremony and minimal setup. It's quite opinionated and does not aim to be a general-purpose build tool.

Features

  • 🎯 Minimal Configuration: Uses standard deps.edn - no additional configuration files needed
  • 📦 Zero Dependencies: Built on top of official tools.build
  • 🔧 Sensible Defaults: Works out of the box for most Clojure projects

Quick Start: Build app

Add slim to your deps.edn:

{:aliases
 {:slim {:deps {io.github.abogoyavlensky/slim {:git/tag "v0.1.0" :git/sha "..."}}
         :ns-default slim.build-app
         :exec-args {:main-ns my-app.core}}}}

Run the build:

clojure -T:slim build

That's it! Your uberjar will be created at target/standalone.jar .

Usage

Build app

The minimal configuration requires only the main namespace:

{:exec-args {:main-ns my-app.core}}

Custom configuration

You can customize the build also with optional parameters. All available options are shown below:

{:exec-args {:main-ns my-app.core
             :target-dir "custom-target"
             :uber-file "my-app.jar"
             :src-dirs ["src" "resources" "custom-src"]}
  • :main-ns (required) - Main namespace to compile
  • :target-dir (optional) - Target directory for build artifacts (default: "target")
  • :uber-file (optional) - Name of the output uberjar (default: "target/standalone.jar")
  • :src-dirs (optional) - Source directories to include (default: ["src" "resources"])

Build library

TODO: Add instructions

Alternatives

License

MIT License Copyright (c) 2025 Andrey Bogoyavlenskiy

Can you improve this documentation?Edit on GitHub

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

× close