Skip to content
This repository has been archived by the owner on Sep 16, 2021. It is now read-only.


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
This branch is 297 commits ahead, 1 commit behind healthfinch:master.

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


depstar came into existence, in March 2018, because there was no "built-in" way to create library JAR files with the Clojure CLI and deps.edn at the time. Over the three and a half years since then, depstar has added a lot of functionality with the ability to make uberjars, perform AOT compilation, generate a JAR file manifest, and so on. My intent, as maintainer of depstar since October 2018, has always been to provide an easy-to-use JAR builder as long as there was no "official" solution for that.

In early July, 2021, the Clojure core team announced as an "official" solution for building JAR files and performing AOT compilation. In addition, was a toolkit that provided functions to copy files, directories, compile Java code, and run shell processes -- things that depstar had never been intended for.

For a while, there was a functionality gap between the uber task of and the uberjar functionality of depstar. I've been working with Alex Miller to reduce that gap and with the release of v0.4.0 on September 15, parity was achieved. I had already switched most of my open source projects over to for running tests and building the JAR files and with that latest release I was able to switch the build.clj script at work over to for building our production uberjar artifacts! The missing piece (for us at work) had been the merging of the Log4j2Plugins.dat files across libraries which depstar had supported since December 2020 (version 2.0.160) and that is now possible through the :conflict-handlers option added to uber in v0.4.0 of, along with my log4j2 conflict handler library.

At this point, depstar is no longer needed and only serves to fragment the tooling around the Clojure CLI and deps.edn so I am sunsetting this library and asking everyone to switch to instead. You can reduce the amount of "boilerplate" in your build.clj by using my build-clj library which has equivalent tasks for clean, jar, and uber with "sane defaults" for most options and combines the functionality described in the official guide. In addition, it has tasks to run your tests and deploy your library JAR to Clojars. It's uber task provides the log4j2 plugins cache merging functionality by default.

Thank you for all the support and feedback on depstar over the last three years!

Please use and build your projects responsibility!

depstar Clojure CI Open in Gitpod

Builds JARs, uberjars, does AOT, manifest generation, etc for deps.edn projects (forked from healthfinch/depstar and enhanced).


The latest versions on Clojars and on cljdoc:

Clojars Project cljdoc badge

The documentation on is for the current version of depstar:

The documentation on GitHub is for develop since the 2.1.303 release -- see the CHANGELOG and then read the corresponding updated documentation on GitHub if you want.

This project follows the version scheme MAJOR.MINOR.COMMITS where MAJOR and MINOR provide some relative indication of the size of the change, but do not follow semantic versioning. In general, all changes endeavor to be non-breaking (by moving to new names rather than by breaking existing names). COMMITS is an ever-increasing counter of commits since the beginning of this repository.

Basic Usage

Add depstar via one or more aliases in your project deps.edn or user-level deps.edn (in ~/.clojure/ or ~/.config/clojure/):

 :aliases {
  ;; build an uberjar (application) with AOT compilation by default:
  :uberjar {:replace-deps {com.github.seancorfield/depstar {:mvn/version "2.1.303"}}
            :exec-fn hf.depstar/uberjar
            :exec-args {:aot true}}
  ;; build a jar (library):
  :jar {:replace-deps {com.github.seancorfield/depstar {:mvn/version "2.1.303"}}
        :exec-fn hf.depstar/jar
        :exec-args {}}

Create an (application) uberjar by invoking depstar with the desired jar name:

clojure -X:uberjar :jar MyProject.jar

An uberjar created by that command can be run as follows:

java -cp MyProject.jar clojure.main -m project.core

Create a (library) jar by invoking depstar with the desired jar name:

clojure -X:jar :jar MyLib.jar

For more detail, read Getting Started and the applicable sections of the documentation.


The use and distribution terms for this software are covered by the Eclipse Public License 2.0


Builds JARs, uberjars, does AOT, manifest generation, etc for deps.edn projects


Code of conduct




Sponsor this project



No packages published


  • Clojure 82.2%
  • HTML 17.7%
  • Dockerfile 0.1%