# technomancy/leiningen

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/technomancy-leiningen).**

7,305 stars · 1,578 forks · Clojure · NOASSERTION

## Links

- GitHub: https://github.com/technomancy/leiningen
- Homepage: https://codeberg.org/leiningen/leiningen
- awesome-repositories: https://awesome-repositories.com/repository/technomancy-leiningen.md

## Description

Leiningen is a build tool, dependency manager, and project automator for Clojure. It provides a command-line interface for bootstrapping new project structures, managing external libraries, and launching interactive read-eval-print loops for live development.

The tool allows for the extension of build commands through a plugin system and manages project settings using a configuration map that can be layered with global user preferences and specific profiles.

Its capabilities cover the full project lifecycle, including automated test execution, the creation of standalone executable archives, and the publishing of libraries to remote repositories. It ensures stability by launching application code in a separate process to avoid dependency conflicts with the build tool itself.

## Tags

### Programming Languages & Runtimes

- [Clojure Build Tooling](https://awesome-repositories.com/f/programming-languages-runtimes/clojure-build-tooling.md) — Provides a comprehensive build tool for bundling projects into archives and publishing libraries.
- [Clojure Build Tools](https://awesome-repositories.com/f/programming-languages-runtimes/clojure-build-tools.md) — Acts as a comprehensive build tool and project automator for the Clojure ecosystem.
- [Clojure Dependency Managers](https://awesome-repositories.com/f/programming-languages-runtimes/clojure-dependency-managers.md) — Resolves transitive dependencies from remote repositories and manages the project classpath.
- [Dependency Resolution Engines](https://awesome-repositories.com/f/programming-languages-runtimes/dependency-resolution-engines.md) — Calculates a flat list of required libraries by recursively resolving transitive dependencies from remote repositories.
- [Dependency Management](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/jvm-languages/clojure/dependency-management.md) — Resolves and downloads external libraries to ensure required code is available for development.
- [Project Automation](https://awesome-repositories.com/f/programming-languages-runtimes/programming-language-varieties/programming-languages/jvm-languages/clojure/project-automation.md) — Manages the build process and project lifecycle from initial setup to final packaging.

### Development Tools & Productivity

- [Interactive REPLs](https://awesome-repositories.com/f/development-tools-productivity/interactive-repls.md) — Starts a read-eval-print loop for live coding and interactive exploration of the project state. ([source](https://github.com/technomancy/leiningen/blob/main/README.md))
- [Project Bootstrapping Tools](https://awesome-repositories.com/f/development-tools-productivity/project-bootstrapping-tools.md) — Bootstraps new project structures and executes custom build tasks via configuration files.
- [Project Task Execution](https://awesome-repositories.com/f/development-tools-productivity/project-task-execution.md) — Runs named functions from a configuration file using specific profiles and arguments. ([source](https://github.com/technomancy/leiningen/tree/main/leiningen-core))
- [Read-Eval-Print Loops](https://awesome-repositories.com/f/development-tools-productivity/read-eval-print-loops.md) — Launches an interactive read-eval-print loop for live code iteration and state exploration.
- [Configuration Layers](https://awesome-repositories.com/f/development-tools-productivity/configuration-layers.md) — Merges global user settings with project-specific maps to determine the active configuration for a run.
- [Automated Test Execution](https://awesome-repositories.com/f/development-tools-productivity/debugging-profiling-testing/test-execution-management/automated-test-execution.md) — Provides a command to run automated test suites across project namespaces.
- [Package Publishing](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/artifact-distribution-systems/package-publishing.md) — Uploads packaged projects to remote repositories for distribution and version management. ([source](https://github.com/technomancy/leiningen/blob/main/README.md))
- [Standalone Binary Packaging](https://awesome-repositories.com/f/development-tools-productivity/lightweight-application-frameworks/standalone-binary-packaging.md) — Bundles a project and all dependencies into a single executable file for distribution. ([source](https://github.com/technomancy/leiningen/blob/main/README.md))

### Software Engineering & Architecture

- [Project Bootstrapping Tools](https://awesome-repositories.com/f/software-engineering-architecture/project-bootstrapping-tools.md) — Generates standard directory structures and initial configuration files for new projects. ([source](https://github.com/technomancy/leiningen/blob/main/project.clj))
- [Plugin-Based Architectures](https://awesome-repositories.com/f/software-engineering-architecture/software-architecture/architectural-patterns/plugin-module-systems/modular-plugin-architectures/plugin-based-architectures/plugin-based-architectures.md) — Allows the addition of new build commands by loading external Clojure namespaces into the runtime.

### DevOps & Infrastructure

- [Plugin Extensibility](https://awesome-repositories.com/f/devops-infrastructure/release-automation/plugin-extensibility.md) — Enables adding new tasks and build process functionality through project or user-level plugins. ([source](https://github.com/technomancy/leiningen/blob/main/README.md))

### Mobile Development

- [Project Configuration](https://awesome-repositories.com/f/mobile-development/build-and-tooling/project-configuration.md) — Defines project metadata and build settings through a central Clojure configuration map.

### Part of an Awesome List

- [Build and Package Management](https://awesome-repositories.com/f/awesome-lists/devtools/build-and-package-management.md) — The standard build automation and dependency management tool.
- [Developer Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/developer-utilities.md) — Build automation tool for Clojure projects.
