Plum

A tool for managing Clojure projects.

git clone https://github.com/Lokeh/plum.git ~/.plum/

# install globally
ln -s ~/.plum/plum /usr/local/bin/plum
# or place somewhere else on your $PATH, e.g. ~/bin/

# update and complete installation
plum update

# print usage
plum help

Get started with Clojure development today!

plum uses the official Clojure CLI tools and deps.edn format to manage your project.

It comes built-in with common utilities like project generation, adding new dependencies, running tests, and starting a REPL.

Quick Start Guide

To get started developing Clojure with the help of plum, you'll first need to install the Clojure CLI tools.

Follow the Clojure Getting Started Guide and install the command line tools for your OS. To install plum, follow the instructions in the snippet at the top of this page.

To generate a new project, we can use the plum new command:

$ plum new app my-name/my-new-app
clojure -A:plum/new app my-name/my-new-app
Generating a project called my-new-app based on the 'app' template.

$ cd my-new-app

Adding dependencies is easy:

$ plum add clj-time "0.15.0"
clojure -A:plum/add clj-time 0.15.0
Adding dep clj-time 0.15.0 to deps.edn.
Success!

To start a REPL and start exploring, plum repl will start Clojure with readline, syntax highlighting, and autocomplete:

$ plum repl
clojure -A:plum/repl
Downloading: clj-time/clj-time/0.15.0/clj-time-0.15.0.pom from https://repo.clojars.org/
Downloading: joda-time/joda-time/2.10/joda-time-2.10.pom from https://repo1.maven.org/maven2/
Downloading: joda-time/joda-time/2.10/joda-time-2.10.jar from https://repo1.maven.org/maven2/
Downloading: clj-time/clj-time/0.15.0/clj-time-0.15.0.jar from https://repo.clojars.org/
[Rebel readline] Type :repl/help for online help info
user=>

Learning Clojure

The official Clojure docs have a Learning Clojure section that goes over syntax, functions, and other important parts of the Clojure language.

The Clojure community is very rich with information. Check out the Community Resources section to find links to Slack, forums, books and other learning resources.

Community

plum is intended to be a community project. Each plum command is implemented as it's own project which may have its own maintainer and contribution process. Help is always appreciated in filing, triaging and fixing bugs and adding new features to help make Clojure a fun, easy language to work with.

Issues can be filed on GitHub.

Questions are best answered on the Clojurians Slack group in channel #plum



Copyright 2019 Will Acton and contributors. Licensed under EPL 2.0.