Announcing Slim: new build tool for Clojure
February 7, 2025Introducing Slim: a new build tool that simplifies building Clojure projects. Slim is designed to streamline your Clojure development, whether you’re creating an uberjar for your application or deploying a library. With zero ceremony and minimal configuration using your existing deps.edn
, you can focus on writing code rather than managing build scripts.
Minimal App Example
Add slim to your deps.edn
:
{:aliases
{:slim {:deps {io.github.abogoyavlensky/slim {:mvn/version "0.2.1"}}
:ns-default slim.app
:exec-args {:main-ns my-app.core}}}}
Run your build:
clojure -T:slim build
Your uberjar will be created at target/standalone.jar
.
Minimal Library Example with Extended Metadata
deps.edn
{:aliases
{:slim {:deps {io.github.abogoyavlensky/slim {:mvn/version "0.2.1"}
slipset/deps-deploy {:mvn/version "0.2.2"}}
:ns-default slim.lib
:exec-args {:lib my-org/my-lib
:version "0.1.0"
:url "https://github.com/my-org/my-lib"
:description "My awesome library"
:developer "Your Name"}}}}
Install your library locally:
clojure -T:slim install
Deploy snapshot:
clojure -T:slim deploy :snapshot true
Or publish a release version:
clojure -T:slim deploy
An example of using Slim in a Clojure project with a complete CI build setup can be found in the Automigrate project.
Slim makes building and deploying Clojure projects effortless. For more information, check out the tool’s documentation and give it a try!