Browse Clojure Foundations for Java Developers

Leiningen and tools.deps

Understand the two common build/deps workflows so you can read and run real projects.

If you come from Java, it is tempting to ask “which one is the official build tool?” In Clojure, the more useful question is: “which toolchain does this project use, and how do I get a REPL and tests running quickly?”

You will see two main workflows:

  • tools.deps / Clojure CLI: configuration in deps.edn, flexible aliases, and strong alignment with the JVM classpath model.
  • Leiningen: configuration in project.clj, a long history in the ecosystem, and a plugin-based workflow many older projects still use.

Practical guidance

  • Prefer learning to run what exists before migrating anything.
  • For new projects, many teams default to tools.deps, but legacy Lein projects are still common and productive.
  • Treat both like Maven vs Gradle: you do not need a holy war, you need fluency.

This section helps you recognize the files, commands, and mental models so you can join a codebase and be effective.

In this section

Revised on Friday, April 24, 2026